XSA中的服务间通信

2020-09-17 03:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们正在XSA上构建包含多个微服...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们正在XSA上构建包含多个微服务的应用程序。

现在,我正在努力为服务间通信正确设置安全令牌,即服务A需要调用服务B并为此传递一个oauth令牌。

在我们的设置中,每个服务都绑定到自己的xsuaa实例,以便能够管理与该服务直接相关的作用域。 在开发过程中,每个开发人员都在单独的空间中运行。

到目前为止,我看到了三个通过身份验证的常规选项。 不幸的是,我无法运行任何选项。

1)使用外部作用域,如应用程序安全描述符配置语法
这里的约束似乎在一个空间中运行。 当我将" ServiceB!i8.read"硬编码到scopes_references中时,令牌将包含它。 不幸的是,使用$ XSAPPNAME(application,ServiceB).read无法正常工作,我希望将其解析为相同的绝对名称。
高度赞赏如何使用外部作用域的示例!

2)使用令牌交换。

服务B可以将从服务A接收到的令牌交换为特定于服务的令牌。 我试图收到 JWT承载令牌授予,但我收到的只是来自xsuaa的500服务器错误。 也许它不在SPS03中实现?

3)使用客户端凭据

此选项是最不优选的,因为这意味着要在服务B中使用用户上下文。无论如何,我不希望收到设置了任何引用权限的令牌。
对于选项1,一个完整的示例将非常感激。

如果我错过了其他选择,请随时让我知道。

此问题我目前阻止发布几乎完成的应用程序,所以我希望这里有人可以帮助我解决这个问题。


谢谢,

Philipp

3条回答
95年老男孩
2020-09-17 04:12

嗨,菲利普,

感谢您的提问。 我也非常希望看到您的解决方案,并希望有人能帮助您!

是否有可能您在描述符中错过了这个:
 " authorities":["。ForeignCall"," .ForeignCall",] 

BR,德克

一周热门 更多>