这个博客是献给简的,因为他自找的嘿,Jan Penninkhof,希望你喜欢
这个博客是一系列教程的一部分,详细解释了SAP云平台后端服务的使用。今天:如何从外部应用程序调用API,如REST客户端
快速链接:配置安全性获取令牌调用API使用工具生活中有些事情对我们来说太自然了,我们甚至都没有意识到。例如:呼吸。我们紧张的时候大声点。使用REST客户机调用API。开心的时候微笑。等等。类似地,我们想当然地认为,在使用后端服务创建了一个API之后,我们将转到我们最喜欢的REST客户机来使用该API。–不-不起作用:未经授权在SecurityContext中找不到身份验证对象brrrrrrrrr
但不必绝望:这里有一系列教程…。只要遵循这个教程,新零售企业应用中心,你就可以做大自然希望你做的事情。别担心:你不需要成为一个安全专家来遵循这个描述。别担心:遵循它之后,你就不会成为安全专家了。如果您感兴趣,请阅读OAuth博客
背景
在当前时间点,SAP云平台后端服务只支持非常有限的授权机制:
原因是前端应用程序的目标使用,而不是人为测试人员。然而,我们也有理由从本地REST客户机调用api:例如,因为cockpit不够强大。每当我们需要在请求的同时发送头时(例如,如何做淘客,对于etag),或者如果我们想要执行批处理请求,或者如果我们需要使用PUT而不是PATCH,都会出现这种情况读完本教程后,您将能够轻松地使用REST客户机测试所有api。您将了解到,不能仅通过提供用户凭据来调用API(不支持基本身份验证)。相反,您需要发送一个访问令牌。这个需要提取一次,可以使用一段时间。
这些是我们需要做的步骤:
步骤概述:
好吧……我不得不承认,这是一个太粗糙的概述。
步骤详细概述:
1。在云账户中配置安全
我们需要一些准备步骤,在我们的云账户中完成,在我们请求授权令牌之前:为此,SAP云平台提供了"授权和信任管理"服务
请关注此博客,在客户或试用帐户中为后端服务创建一个具有特定参数的服务实例:https://blogs.sap.com/2019/04/29/sap-cloud-platform-backend-service-tutorial-0.5-configure-xsuaa/
在继续下一步之前,请确保查看包含以下所需信息的服务密钥。要查看服务密钥:转到BETA启用的子帐户->单击共享空间->服务->服务实例点击您的实例->服务键->选择您的服务键
我们记下了3个相关的属性值(我在上面的截图中标记了它们)
注意:如果看不到某些属性,可能需要最大化浏览器窗口,或者使用不同的浏览器
在我的示例中(稍微修改):
2。获取授权令牌
到目前为止,一切都是云账号中的一次性配置。现在我们来做实际工作:调用授权端点以获取迫切需要的令牌。没有这个标记,我们就不能调用我们的API注:这个博客是关于那个愚蠢的标记,一个没有任何意义的无尽的字符链。但是它们有很大的价值…
URL
要获得令牌,我们必须对认证服务器做一个服务调用。要调用的url取自上一节中提到的–属性。它的格式如下:
https://.authentication.
OAuth端点
在上面URL的末尾,我们需要附加OAuth的端点:
/OAuth/token
放在一起,在我的示例中,端点URL如下:
https://subaccount.authentication.eu10.hana.ondemand.com/oauth/token
授权类型
除了URL和OAuth端点之外,还需要一些信息:"授权类型"。我们可以将其作为查询参数与URL一起传递这些是必需的参数:
所以,把所有的放在一起,我们调用的最终URL来获取令牌:
在我的示例中(稍微模糊)
注意:我需要记下这个吗?你很清楚,所有这些博客都是为了用REST客户端测试我们的api,学习用SAP云平台后端服务构建api,什么是淘客,学习如何创建和使用一些不能用cockpit测试的特性(比如etag、batch等)。因此,我们可以通过网络发送敏感用户凭据。在专业环境中,您知道您永远不会将密码作为URL参数发送,关于云服务器,因为在HTTP日志中很容易读取它。顺便说一句,使用Postman中的工具支持至少可以在UI中隐藏密码。请参阅附录
呼叫端点
请求令牌,打开浏览器并粘贴URL,然后按ENTER和…–不-你会得到一个弹出窗口:
brrrrrrrrrrr该终结点需要授权。现在怎么办?brrrrrrrrr是的,我知道你为什么抱怨,是的,要获得授权令牌,我们需要另一个授权。
不要惊慌,一切都会好的。我们有必要的证件:它是在上述财产这是一个简单的基本身份验证,其中"user"是属性"clientid"的值,并且"password"是属性"clientsecret"的值
在我的示例中,返利淘客,(稍微模糊的)凭证:
浏览器主体中的响应包含属性"access\u token"-这正是我们需要的。这个值是一个长字符串,有很多漂亮的字符和数字。
不要试图记住它或键入它。只需复制并粘贴没有引号的值
就是这样:现在我们有了授权令牌。最后。几句话之后,我们就可以开始使用代币了