点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 我正在使用OAuth保护S...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 我正在使用OAuth保护S...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨
我正在使用OAuth保护SCP业务规则API,如本博客。
然后,我试图使用UI5中的另一个目标来访问业务规则。
由于业务规则现在受OAuth保护,因此我尝试使用OAuth2ClientCredentials身份验证类型配置目标。 但是,当从UI5调用业务规则时,使用目标的调用仅检索500 Internal Server Error,而没有其他内容。 目的地上的检查连接按钮返回"失败原因:"目前无法检查。请稍后重试"。
请你帮我这个忙吗?
谢谢
巴拉
你好,巴拉,
对不起,我回答这么长。 该主题是一个相当新的主题,需要一些透彻的解释,以便您了解发生了什么。
您是否尝试过通过邮递员执行相同的呼叫?
我已经在Cloud中创建了oauth客户端 Java应用程序的座舱(仅用于测试)。 我了解BPM/BRM会将其端点部署为Java应用程序,并且将以相同的方式工作。 使用"授权授予"类型"客户端凭据"创建客户端。 这样,您就可以使用" id"作为用户名,并使用" secret"作为您的初始请求的密码:
这将为您提供一个承载令牌,例如:
拥有此访问令牌后,您可以通过在标头中发送令牌来调用实际的服务端点:
您 也可以使用OAuth v2.0方法尝试邮递员。 但是,我无法使授予类型" Client Credentials"在SCP上起作用(也许是因为我对Postman并不那么熟悉)。 我已经使用"授权代码"授予类型代替了Postman。
,然后在Cloud Cockpit中,需要为您的brm端点创建一个"授权授权:授权代码"的OAuth客户端,并将"机密"设置为true。 重定向URL也应与您的BRM端点相同。
如果以上方法适用于邮递员,则说明您已经完成了一半。 在能够使用BRM目标之前,下一步是使用Java(作为API代理)实现BRM服务调用,以避免在JavaScript代码中公开OAuth客户端ID,密码等。
不幸的是,在Neo环境中,OAuth2ClientCredentials身份验证方法目前仅受Java应用程序支持(不确定您是否也可以在XSJS上使用它-不确定。请确保您可以创建一个安全地获取令牌的XSJS应用程序,而无需使用OAuth2ClientCredentials目标 身份验证方法)。
目标服务以安全的方式存储数据(密钥,机密等)。 但是,HTML5应用程序无论如何都会公开Bearer令牌,因为您需要发出两个请求来从服务中加载数据,而这必须在JavaScript中实现。 我认为这被认为是安全风险。 因此,我认为HTML5应用程序不允许使用这种身份验证方法。 也许有计划在将来实施它,但我不是持这种回答的人。
以OAuth受保护的服务为例,那些将代表业务用户调用的服务。 换句话说,这意味着您的业务服务(可能是OData服务)将执行对BRM的调用,以确定业务用户的折扣。 在这种情况下,您实际上不需要让业务用户直接向BRM服务进行身份验证。 相反,您可以通过OAuth委派身份验证,以便您的OData服务实现可以执行调用并将数据返回给最终用户。 考虑到这一点,应该仅通过调用OData服务来简化UI,因为在这种情况下,业务用户身份验证才是真正相关的,并且目标服务可以使用。
此身份验证方法对于Neo和CF都是相当新的 。 因此,您不会在其中找到很多博客。 即使开发自己的API Java代理也不难。 请记住:
1)类 HttpDestination 已准备好使用预配置的Apache HttpClient,并将执行自动访问令牌检索和缓存。 因此,您无需创建POST请求,获取令牌并仅需访问BRM端点即可。 您真正需要的只是使用OAuth2ClientCredentials目标身份验证方法的目标。
2)ConnectivityConfiguration和AuthenticationHeaderProvider类将帮助您与目标配置和要发送到API的标头进行交互。
此外,在过去,我曾经建议使用OAuth作为保护HTML5应用程序中的API密钥的选项,但实际上并不建议这样做。 我还看到了一些示例和练习,其中使用JavaScript完成了通过OAuth来获取Bearer身份验证令牌的方法,这正是您应该避免的-但在这种情况下,安全性并不重要。
希望这会有所帮助 。
最好的问候,
伊万
一周热门 更多>