云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

对象存储_数据库接口开发_限量秒杀

小七 141 0

在我以前的博客文章中,我展示了如何设置一个简单的API并从节点应用程序(或者更确切地说是从Alexa技能)使用它。虽然它确实有助于说明使用API管理的基础知识,但它也可能有点脱离实际的用例。实际上,您很可能有某种类型的身份验证和授权检查,以便在授予对潜在敏感数据的访问权限之前检查传入的请求。在这篇博文中,我将介绍如何在SAP API管理中使用身份验证流。

为此,我将使用ES5 SAP Gateway演示系统,模拟通过SAP Cloud Connector连接到SAP云平台的本地系统。使用ES5还提供了需要登录信息才能访问数据的好处,我们可以将其用作使用身份验证流的简单示例。

*ES5演示网关系统不是真正的内部系统,但我们将使用它来模拟一个

先决条件

亚马逊开发者网站上的亚马逊开发者帐户启用API管理订阅的活动SAP云平台云铸造CLI节点.jsnpm和一些基本的JavaScript理解(对不起,Max)

除了这些要求之外,这次还需要一个本地系统。我将使用开放可用的ES5系统,您可以在这里为其创建一个用户。要测试您是否有权访问系统,请打开https://sapes5.sapdevcenter.com/sap/opu/odata/sap/SEPMRA\u PO\u APV/PurchaseOrders?$format=json并使用用户名和密码登录。如果成功,您应该可以看到一些采购订单的信息。

现在我们可以访问该系统,让我们将其连接到Cloud Foundry。为此,我们将使用sapcloud连接器。遵循本指南,了解如何在本地计算机上安装和配置云连接器实例以连接到Cloud Foundry子帐户。完成后,您可以通过在CF子帐户的导航菜单中选择"Connectivity"项并导航到"Cloud Connectors"来检查配置。在"Exposed Back End Systems"(暴露的后端系统)下,配置云连接器时,您应该能够看到带有您设置的虚拟主机的本地系统。

设置API

设置到后端系统的连接后,使用我在上一篇文章中获得的知识,大数据怎么用,在API门户中设置API提供程序和API。

对于API提供程序,导航到配置,单击创建并设置一个名为"es5"的配置:

连接:

目录服务设置:

现在,使用您刚刚创建的API提供程序设置具有以下配置的API:

保存并部署您的API。要检查是否一切正常,请在浏览器中打开API的URL并使用ES5凭据进行身份验证。

使用基本身份验证发出请求

由于我们要发送到ES5 API的每个请求都经过ES5系统的身份验证,因此我们需要随每个请求一起发送ES5凭据。最简单的方法是在发送的GET请求中添加一个基本的身份验证头。以我们以前构建的节点应用程序为例,我们可以这样扩展它:

但是,这需要我们在每个我们想要发送请求的应用程序中存储我们的登录信息,比如我们以前的Alexa skill。这将不可避免地带来安全问题,因为我们必须将敏感数据存储在潜在易受攻击的第三方系统上。

为了避免此问题,我们可以让SAP API管理处理身份验证。为此,我们将在API门户上的键值映射中保护登录信息,并使用策略向传入请求添加基本身份验证头。这使我们只需在SAP系统上存储用户信息即可获得优势。

要创建关键值映射,您首先需要访问API门户,导航到"配置"并切换到"关键值映射"选项卡。单击创建并输入以下内容:

同时,将以下两个条目添加到键值映射:

保存键值映射。将"Encrypt Key-Value-Map"设置为true将阻止任何人手动读取设置的值,并且只有API管理人员才能访问这些值。

为此,我们需要添加两个策略:

在API门户的左侧,导航到"开发"并选择您创建的API。在右上角,单击策略。这样做将带您到策略编辑器,大数据专业,您将看到请求流的概述。

由于我们要添加两个策略,请首先单击编辑。接下来,选择TargetEndpoint下的PreFlow并添加(+)一个"键值映射操作"策略,您可以在策略编辑器右侧的"中介策略"下找到该策略。

单击add(+)将提示您一个对话框字段,您可以在其中命名策略。

将"getEs5Credentials"设置为策略名称并确保保留流设置为传入请求。将预配置的XML替换为:

此XML片段将读取我们先前定义的键值映射的值,并将它们保存为局部变量,以便我们以后可以访问它们。接下来,添加一个"基本身份验证"策略(在"安全策略"下)并将XML替换为:

这个XML片段将使用我们之前分配的两个变量为传入请求创建一个新的授权头,

现在,TargetEndpoint的预流应该如下:

注意我们创建的两个策略及其顺序。首先,从键值映射中读取所需的值,然后使用这些值添加一个基本的身份验证头。