云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名备案_免费云存储排行榜_好用

小七 141 0

在使用Cloud foundry和自定义身份验证时,我遇到了一个场景,我想在我的应用程序中使用IdP的一些附加属性(如城市、国家等)登录用户信息。

回到Neo环境,我们只需要在IAS中添加我们想要的断言属性,一旦用户通过IdP认证,就可以直接得到SAML会话本身的所有属性

但是现在在CF中,应用路由器是应用的入口,应用路由器触发了UAA中的认证过程。在用户身份验证过程中,容器安全API从应用路由器接收到一个Authorization:Bearer HTTP头,其中包含JWT格式的OAuth访问令牌。

JSON Web Tokens(JWT)包含头和信息(如颁发者、过期时间等),并用UAA服务的私钥签名。JWT以JSON对象的形式传输信息。在尝试访问应用程序时,用户必须从安全API获取JWT令牌,企业正版软件,然后应用程序打开一个会话进行访问。

在深入研究的同时,我发现并不是所有SAML属性都直接映射到JWT令牌,JWT令牌只包含基本的用户标识信息,如姓名、电子邮件、,userId等

在这篇博文中,我将一步一步地解释如何从定制IdP获取所有SAML属性,这些属性在用户的JWT中不直接可用。

前提条件

SAP IAS租户管理安全管理员角色的SCP驾驶舱

步骤

遵循Murali Shanmugham在描述性博客中提到的步骤[谢谢?]

"在SAP Cloud Platform Cloud Foundry上构建门户网站-配置身份提供商和身份验证设置"

要为您的身份验证服务和SCP CF驾驶舱配置信任,

请转到IAS租户管理,导航到应用程序并选择所需的应用程序,然后从信任选项卡中选择断言属性。

添加SAML断言属性,您希望在应用程序中公开,

在本例中,我希望组、国家/地区,来自IdP的登录用户的城市和员工编号。

设置组属性的任何默认值,此组属性将分配给IdP中所有现有和新的注册用户。

此组属性值我们在下一步第6步中需要,用于在SCP驾驶舱中设置角色集合映射。

从信任中选择默认属性Tab

我为组属性设置的值是"SAML\u XSUAA\u Group"

这个app,我们将使用XSUAA JWT演示用户的已验证会话响应

在这里,我创建了希望与SAML属性映射的属性,并创建了作为"查看器"的角色模板,并为此角色模板提供了属性引用。

有关应用程序安全描述符配置的更多详细信息,请参阅此处.

XSUAA服务实例可以直接使用SCP Cokpit创建,并在指定参数步骤

中选择xs安全文件或

使用CF命令行创建

提到您在上一步中刚刚创建的XSUAA服务实例名称。

现在如果您直接运行应用程序,

应用程序URL:https:///jwtdecode。

您可以观察到此响应只返回一些与登录用户相关的属性,如给定的姓名、姓氏、用户名、电子邮件。

这并不能解决我们的问题&这不是我们想要的唯一信息,所以继续下一步。

转到SCP驾驶舱,电力物联网,导航到部署的应用程序并单击角色,

点击"+"添加新角色,这里默认您可以进行令牌交换角色

选择您在xs安全文件中创建的带有属性的"角色模板"并提供角色名称,低价的云服务器,大数据数据采集,

下一步您可以看到您在xs中提到的所有属性列表-安全.json文件,选择source作为"Identity Provider",在值中提供与IdP公开的断言属性相同的值

在下一步中,如果您已经创建了角色集合,您可以选择角色集合,或者跳过,稍后我们可以将此角色分配给所需的角色集合。查看并单击"完成"。

导航到子帐户并单击"安全"菜单下的"角色集合",然后单击"+"以创建新的角色集合。

单击您的角色集合并单击"编辑"以添加我们在上一步中创建的角色并单击"保存"。

现在导航到"信任配置"并选择您的自定义IdP,

选择角色集合映射,点击新建角色集合映射,

选择您的角色集合并分配我们在第3步中创建的默认组值,然后单击"保存"。

此映射仅适用于使用自定义IdP登录并访问您的应用程序的用户,top返利,然后将此角色集合分配给用户id,以便用户的JWT令牌具有我们映射的所有SAML属性。

结果

现在访问您部署的应用程序,

应用程序URL:https:///jwtdecode.

响应:

现在终于在这个响应中,您可以观察到我们想要的所有映射属性,这些属性现在都在key下"xs.user.attributes属性"

通过这篇博文,您学习了

如何在IdP中配置断言和默认属性如何在CF中创建和部署简单的NodeJS应用程序如何将CF应用程序属性映射到自定义IdP公开的属性

希望这有帮助。

*********

您的反馈很重要?!