点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嘿,
我正在创建一个基于SAP Cloud SDK的应用程序,该应用程序可以通过SaaS Provisioning服务进行订阅。 验证通过使用xsuaa-service的approuter以通常的方式进行。
现在,我需要对某些应用程序端点的API访问权限。 我可以利用xsuaa服务的客户端ID和密码来获取JWT令牌并访问这些端点。 但是:该JWT令牌仅限于提供者帐户-从而仅限于单个租户!
我尝试了几件事-尤其是为XSUAA创建服务密钥-但它们总是获得相同的凭据和身份区域。
是否可以通过XSUAA创建范围在身份区域内的其他OAuth客户端?
其他信息:该问题适用于SAP Cloud SDK的Java和JS/TS风格...
您好Tobias,
如果我正确理解了您的问题,则您在一个子帐户中拥有一个应用程序(我们称该子账户为"提供者"),而您从另一个子账户中订阅了该应用程序(我们将此账户称为"一个订户")。
我了解您现在要实现的是代表请求的租户(例如订户租户)从您的应用程序调用服务。
这里以目标服务为例(在SAP Cloud SDK中已经为您解决了所有这些问题)。 如果查看绑定到目标服务的服务(在应用程序的环境变量的VCAP_SERVICES中,可从命令行通过" cf env"进行访问),您将在此处找到三个相关条目: >
为了获得目标服务的访问令牌,您需要使用clientid和clientsecret作为凭据,针对给定URL的"/img/oauth/token"端点执行客户端凭据授予*。 请注意,URL包含" provider"作为子域,这恰好是您的应用程序所在的子帐户的名称。这不是巧合,而是XSUAA服务(我们从中获取令牌的服务)用来确定的机制 向其租户请求令牌。 这意味着,如果请求应代表"订户"租户完成,则只需将URL中的"提供者"替换为请求租户的名称,在本例中为"订户"。 在运行时,您将从触发应用程序中所有这些请求的传入请求的用户令牌(JWT)中获取此信息。
在适用于JavaScript的SAP Cloud SDK中,您可以使用serviceToken 函数。
我希望这能回答您的问题! 如果没有,请随时提供更多详细信息!
最诚挚的问候,
丹尼斯
*还有其他赠款,您需要的赠款取决于用例和服务
我们正在开发一个多租户应用程序,可以由多个客户/租户订阅。 因此,在我们的案例中,确定的方式就是订阅。
关于API客户端:在第1步中,客户端将有一个本地安装的应用程序,将请求发送到我们的多租户应用程序-服务绑定在这里不起作用。
也许在下一步中,CloudFoundry中可能还存在另一个服务,该服务调用我们应用程序的API端点,然后可以利用服务绑定-尽管我不太确定,是否可以更轻松地使用 我们(希望将有)针对本地API客户端进行的那种身份验证...
基本上,我认为XSUAA能够为多个客户端提供服务-仅仅是因为据我所知,这就是授权服务器的工作。 但是我开始担心XSUAA不打算用于这种情况-更侧重于业务用户身份验证...
嗨,Java SDK的几点要点:
一周热门 更多>