你好,大数据和数据库,
在学习了最优秀的SAP S/4HANA Cloud SDK概述教程之后,我想进一步了解如何为不同的使用场景配置OAuth授权。
我将与您分享如何为访问后端微服务配置授权代码授权和资源所有者密码凭据授权。
这是一个先决条件我假设您已经成功地完成了步骤7的saps/4hanacloudsdk概述教程。如果您有,比购返利,当访问后端微服务API时,您将得到带有以下警告的401代码
要使下面的授权生效,您将需要应用程序名、客户机ID、客户机机密和授权服务url(XSUAA)。所有都可以在绑定到xsuaa服务的后端微服务中找到,
授权码授予
根据Cloud Foundry doco:
所以在授权码授予流中提示用户通过提供有效凭证来授予批准。当一个网站希望您允许它使用另一个网站的API时,您可能已经看到了这种类型的流,例如招聘机构请求访问您的LinkedIn帐户以读取您的就业历史。
云铸造UAA doco指定了参数。相应地调整下面的url。
注意-范围在教程步骤7中指定为应用程序名称.显示. 如我们所见,应用程序名在服务绑定中。在这种情况下,只需将它们添加在一起即可。
您将被重定向到uaa登录页面。完成并继续。
提交登录页面后,您将被重定向到指定的重定向url参数。现在您将看到授权码作为参数。复制身份验证码。
我将使用Postman模拟客户端如何将身份验证码交换为访问令牌。云发现UAA doco指定/oauth/token请求的参数。我的网址是:
请求授权
添加先前获得的客户id和客户机密。
请求头
这是请求头的样子。授权头由邮递员添加,
请求体
响应
发布成功后,您将在响应体中获得访问令牌。此外,您还将获得其他信息,例如刷新令牌,以便在当前访问令牌过期后生成新的访问令牌。您不希望每次都提示用户访问!请确保此信息的安全。
授权头包含访问令牌,即"承载访问令牌"。我们将使用它来访问后端微服务。
您现在可以访问后端微服务。
资源所有者密码凭据授予
根据Cloud Foundry doco:
可用于客户端未在浏览器中运行的情况,返利购物,例如移动应用程序。注意用户名和密码不需要保存。密码授予将指定一个刷新令牌,服务器云服务器,如果当前访问令牌过期,该令牌可用于生成访问令牌。
我将使用Postman模拟客户端如何使用用户凭据获取访问令牌。HTTP发布到授权服务(XSUAA)
请求授权
添加客户端id和客户端密码作为请求的基本身份验证
请求头
授权头由邮递员添加
请求主体
云铸造UAA doco指定参数
响应
发布成功后您将获得访问响应主体中的\u令牌。此外,您还将获得其他信息,全球云购,例如刷新令牌,以便在当前访问令牌过期后生成新的访问令牌。你不想保留用户凭据!请确保此信息的安全。
使用此acces\U令牌访问后端微服务。
摘要
这就是如何使用xsuaa服务实现各种oauth流的方法。希望对您有所帮助。