应用的SCP角色未分配

2020-08-17 05:24发布

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

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


大家好,

在CF部署的CAP应用程序中,我正在使用两项服务。
其中一个没有限制,第二个确实需要管理员角色。 在SCP中,我确实创建了一个角色集合(并从我的应用程序中分配了角色)。 在sap.default信任配置中,我将角色集合分配给了我的用户。



当我在隐身窗口中打开应用程序时,系统会提示我登录SCP(SAP ID服务)。 成功登录后,我转到了我的应用程序,但问题是一项服务(要求管理员)说被禁止。
我最近在本地部署中使用approuter尝试了该应用程序,并(在控制台上)登录了 用户以及用户角色。 该过程与部署的应用程序相同(我登录到SCP,然后转发到该应用程序)。 令人惊讶的是,登录的用户始终是匿名的用户角色:undefined
此外,我曾经将第二项服务更改为所需的角色" authenticated-user"。 进行此更改后,我能够访问和使用第二个服务。

因此,我的问题是xsuaa服务与我的应用程序之间的映射是否可能无法正常工作?
您是否知道为什么会发生这种奇怪的行为?
是否可以跟踪JWT令牌,或者在SCP登录后可以使用哪些角色以及分配了哪些角色?

干杯,
索尔斯滕

(8.3 kB)

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

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


大家好,

在CF部署的CAP应用程序中,我正在使用两项服务。
其中一个没有限制,第二个确实需要管理员角色。 在SCP中,我确实创建了一个角色集合(并从我的应用程序中分配了角色)。 在sap.default信任配置中,我将角色集合分配给了我的用户。



当我在隐身窗口中打开应用程序时,系统会提示我登录SCP(SAP ID服务)。 成功登录后,我转到了我的应用程序,但问题是一项服务(要求管理员)说被禁止。
我最近在本地部署中使用approuter尝试了该应用程序,并(在控制台上)登录了 用户以及用户角色。 该过程与部署的应用程序相同(我登录到SCP,然后转发到该应用程序)。 令人惊讶的是,登录的用户始终是匿名的用户角色:undefined
此外,我曾经将第二项服务更改为所需的角色" authenticated-user"。 进行此更改后,我能够访问和使用第二个服务。

因此,我的问题是xsuaa服务与我的应用程序之间的映射是否可能无法正常工作?
您是否知道为什么会发生这种奇怪的行为?
是否可以跟踪JWT令牌,或者在SCP登录后可以使用哪些角色以及分配了哪些角色?

干杯,
索尔斯滕

(8.3 kB)
付费偷看设置
发送
4条回答
葫芦娃快救爷爷
1楼 · 2020-08-17 06:17.采纳回答

嗨,
不确定CDS的外观。
以防万一:
在CDS中,您需要编写完全限定的作用域名称。 使用已解析的XSAPPNAME变量

您可以手动(使用REST客户端)连接到xsuaa以获取JWT令牌(请参见此处),然后查看获得的令牌以查看其是否包含所需范围(使用 例如解码器网络工具)

干杯,卡洛斯(Carlos)

Tong__Ming
2楼-- · 2020-08-17 06:02

啊,当然。

我还发现,可以仅在cds文件中使用角色,然后在xs-security.json中使用变量" $ XSAPPNAME"。

这种方法看起来非常好,并且还使得在模拟数据和xsuaa服务之间切换非常容易(如果需要)。

 MyService.cds
 服务MyService @(要求:"开发人员"){...}


 xs-security.json
 ...
 "范围":
[{ "名称":" $ XSAPPNAME.developer",
...
}],
"角色模板":
[{
"名称":" developer",
"作用域引用":[" $ XSAPPNAME.developer"],
...
}]
天桥码农
3楼-- · 2020-08-17 06:05

添加一个小提示,以防万一可能需要:

使用REST客户端调用服务时,oauth流程为"密码凭证"或"所有者" 必须选择,而不是"客户端凭据"

歪着头看世界
4楼-- · 2020-08-17 06:15

示例应用程序中的代码 HTML5UserAPIforCF 显示如何阅读JWT。

一周热门 更多>