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

负载均衡_网站建设科技公司_促销

小七 141 0

在考虑API管理项目的实现时,有许多方法可以进行授权。在数字世界中,OAuth(尤其是在2.0版本中)广泛使用跨域授权机制。如果你真的想实现一个API驱动的基础设施来向客户交付应用程序,那么OAuth就没有办法了。什么是OAuth?规范。它有什么作用?它指定了如何"启用第三方应用程序获取对HTTP服务的有限访问通过协调审批交互来代表资源所有者在资源所有者和HTTP服务之间,或者通过允许第三方应用程序以自己的名义获得访问权。"(摘自规范)。

IETF文档可读性很强,值得添加书签以了解规范的所有细节。

关于OAuth的概述,有很多网站。DigitalOcean提供了一个很好的概述,其中对概念和流程进行了很好的解释。

在这篇博客文章中,我们将介绍OAuth的一个基本场景:"客户端凭证"流(或者"双腿"流,因为只涉及两个参与方)。当应用程序也是资源所有者时,将使用该流,因此,此授权类型流中不涉及任何用户。

前提条件首先,大数据和云计算,我假设您熟悉我们公共云(HCP)的sapapi管理,并且通常熟悉web技术。另外,我们会用邮递员来做所有的测试。如果没有,请考虑首先通过一个好的教程本教程的主要思想是使用sapapi管理组件实现"客户机凭证"流。下面的图表描述了到达那里的各个步骤。

1-我们将创建一个API代理,它将是我们的"令牌端点"(使用OAuth策略)。例如,大数据应用前景,这个API将生成访问令牌,但也可以撤销或刷新令牌。2-我们将创建一个伪API代理,作为受保护的资源(使用OAuth策略)。3-我们将把伪API代理添加到API产品中4-我们将创建一个应用程序并添加在步骤3中创建的API产品。此应用程序有一个应用程序密钥和一个应用程序机密,对应于OAuth生成令牌所需的客户机\u id和客户机\u机密。5-我们现在将使用令牌端点来获取访问令牌,使用应用程序的凭据6-最后,我们将使用访问令牌来访问受保护的资源,即虚拟API代理。

请记住,SAP API Management是一个包含大量预定义内容的框架,因此我们可以实现几乎任何行为或流。

1-创建令牌端点首先让我们创建令牌端点来生成访问令牌。

创建一个新的代理,并称之为"OAuthService"。因为这个代理的端点将是OAuth策略,所以只需将目标端点设置为任意URL即可(实例)。

添加一个"资源",例如我们称之为"GenerateToken"。这是我们要生成令牌时将调用的路径。请注意,必须是"POST",因为我们将以x-www-form-urlencoded body的形式向终结点发送凭据。

现在打开策略编辑器并在"GenerateToken"流中添加"OAuthV2"策略。

OAuthV2策略是一个多用途策略:根据您的配置,它可以生成、失效、验证、刷新、,等等,OAuth代币。有关更多信息,请查看帮助。

在我们的示例中,我们将对其进行配置,使其返回"访问令牌",大数据存储技术,即在请求时生成令牌。OAuthV2策略的配置如下:

您的令牌端点代理应该如下所示:请注意,在触发OAuth策略后,上述代理的执行将停止,而不会到达我们首先定义的虚拟主机(OAuthV2策略中"GenerateResponse"配置标记的正常行为)。

还要注意,配置XML元素的顺序很重要。OAuthV2策略XML配置应按以下顺序配置元素:

AccessToken,附加用户客户ID代码OAuthConfig文件属性GenerateErrorResponse生成错误响应呼气素外部AccessToken外部授权外部授权代码外部刷新令牌格兰特型操作密码重定向URI刷新令牌刷新过期蛋白生成响应响应类型重用刷新令牌范围州存储令牌支持的GrantTypes代币用户名AccessTokenPrefix

2-创建虚拟API代理

我们的下一步是创建将由OAuthv2策略保护的资源,即请求者需要提供访问令牌。

对于本练习,我们将不代理实际API,而是停止API管理层中的执行。为此,我们将定义一个不指向目标的特定"路由规则"。响应将由具有"assignMessage"策略的API代理生成。

首先,创建一个新的API代理。例如将其命名为"OAuthTestProxy"。

一旦创建了代理,切换到编辑模式并生成2个资源:Test1(仅"GET")和Test2(仅"POST")。我们稍后将使用这些资源。同样在编辑模式下,删除默认路由,并创建自己的路由,目标端点应为"无"。

最终,物联网安全,您的代理应如下所示:

添加响应现在,我们将为我们创建的资源添加一个响应。这是通过使用"AssignMessage"策略来实现的,它可以将值分配给请求或响应元素,如头、参数、正文等。

转到策略编辑器,并在"Test1"资源的传出流中添加"AssignMessage"策略。为此:–单击策略编辑器中的"编辑"按钮–单击屏幕左侧的"Test1"资源–单击右侧"AssignMessage"策略旁边的"+"按钮。将策略命名为"SetResponse",并选择"Outgoing Response"作为流。单击"添加"。

现在配置策略以向调用者返回消息:

对"Test2"资源执行相同的操作,并使用另一个响应:

使用postman测试策略。您的URL应如下所示:HCP API管理URL,后跟代理的URL,后跟资源名称:"http://myHCPTrial"+"/v1/OauthTest"+"/Test1"

示例:

记住对您的2个资源使用"GET"或"POST"方法。

添加OAuth令牌验证策略

我们现在将OAuth访问令牌验证策略添加到我们的API代理。此策略不与任何资源绑定,并且应始终在请求开始时执行。因此,大数据解决,我们将其放在"预流"部分