我们使用SAP Web-IDE Full Stack开发了一个web应用程序;我们需要检索登录到应用程序(在SAP Cloud Platform Identity Authentication Administration中定义)的用户的详细信息,例如显示名称和分配的组。我们尝试了userapi/currentUser API,但它似乎只在NEO环境下工作,因此在Web-IDE中调试时工作正常,但在Cloud Foundry上部署应用程序时出现404错误。我们需要添加一个新的目的地来使userapi也在CF上工作吗?或者,Cloud Foundry上有类似的解决方案吗?
发布于 2020-02-18 01:12:17
在SAP Cloud Foundry中,如果您使用XSUAA服务开发MTA来管理用户身份验证和管理,例如在mta.yaml中定义,
...
resources:
- name: uaa_myapp
parameters:
path: ./xs-security.json
service-plan: application
service: xsuaa
type: org.cloudfoundry.managed-service
...您可以使用XSUAA服务自身发布的UAA API来管理用户认证和授权(例如:检索用户信息、分配的组、密码管理等)。同样,在应用程序与另一个IDP联合的情况下。
例如,要使用此API来检索用户信息,您需要:
你可以在Account and Authentication Service of the Cloud Foundry Environment SAP doc上找到其他信息。
发布于 2018-11-20 16:17:00
我强烈建议使用SAP S/4HANA Cloud SDK来完成这类任务。它是一个SDK,通过为所有云平台机制提供易于使用的机制,使为SAP Cloud Platform构建应用程序变得容易。
关于手头的任务,有一个UserAccessor类可以使用,如下所示:
final Optional<User> user = UserAccessor.getCurrentUser();这在Neo和Cloud Foundry上都有效,即两个平台都有一个单一的界面,允许您以平台无关的方式开发应用程序。
如果这听起来可以解决你的问题,我建议你去看看this blog post series开始吧。
或者,您也可以简单地将以下依赖添加到您的项目中,以开始测试SDK:
<dependency>
<groupId>com.sap.cloud.s4hana.cloudplatform</groupId>
<artifactId>scp-neo</artifactId>
<version>2.7.0</version>
</dependency>对于Cloud Foundry,使用scp-cf而不是scp-neo。
希望这能有所帮助!
附言:为了从技术层面回答您的问题,Cloud Foundry使用所谓的JWTs进行身份验证和授权。您可以通过查看请求的Authorization头来检查是否存在JWT。JWT应该包含您正在查找的信息。
https://stackoverflow.com/questions/52296127
复制相似问题