sap-cloud-platform - 通过 SDK UserAccesor API 在 SAP Cloud Foundry 应用程序中捕获 IDP 用户属性
问题描述
我想通过 UserAccessor SDK api 捕获来自 SAP IDP(身份和身份验证租户服务,如部门、称呼、公司等)的用户属性,但尽管这些属性已设置并在 IDP 用户中具有价值,并且与 IDP 和子帐户的所有集成在身份验证后到位,用户属性对象为空,我只能通过 JWT 和 UserAccessor api 检索特定属性,如名字、姓氏、电子邮件地址、用户组等,但其他属性没有运气,在 IDP 中我有在 SAP Identity authentication tenant 中的断言属性下也提到了这些属性。
请在这件事上给予指导和帮助。
谢谢悉达多
解决方案
更新:由于我们现在已经确定了问题,我将更新我的答案以反映这一点。下面的原始答案已过时:
好的,问题是您没有将任何其他用户属性从您的身份提供者 (IdP) 映射到您的 JWT。据我所知,您需要做三件事:
- 您需要在您的
xs-security.json
(用于配置 XSUAA 服务实例的文件)中创建属性。该文档应该解释如何做到这一点。 - 您需要配置 IdP 公开哪些属性(在您的情况下是 SAP Identity & Authentication 服务。此文档看起来是开始查找的好地方)。
- 您需要将 IdP 公开的属性映射到
xs-security.json
. 在执行此步骤之前,您可能需要使用更新的配置重新配置(即删除、重新创建和重新绑定)您的 XSUAA 服务实例。然后,导航到 Cloud Platform Cockpit 中的应用程序,从左侧工具栏中单击“Security > Roles”并创建映射。
让我知道这是否适合您!
原答案:
据我所知,默认 IdP 不支持 SAML。如果没有 SAML,我不确定您是否可以将任何属性从 IdP 传播到 JWT。
另请查看此讨论以获取更多信息。
推荐阅读
- python-3.x - 使用 TensorFlow Extended (TFX) 进行多输出分类
- javascript - 为什么 1%2 在 JavaScript 中会产生 1,而当我通常将 1 除以 2 时,你会得到 0 作为提醒?
- arrays - 如何根据 MATLAB 中的时间合并我的数据集?
- javascript - 对数组中的时间码求和,仅使用 reduce
- python - 将“n”行组合成 1 行的 pandas 数据框列的条件聚合
- javascript - 在 Recharts 的 X 轴上仅显示 2 位年份
- terraform - 应用项目后无法在本地为 terraform 打印变量。应用后已知的 Terraform 打印
- svelte - 如何让 tw-in-js/twind 插件在 Svelte 中工作
- python - 如何测试对象的类型?
- c# - 尝试根据节点属性值将新的 XElement 添加到树中的特定节点