【问题标题】:Okta not returning custom claims in tokensOkta 未在令牌中返回自定义声明
【发布时间】:2018-11-17 14:25:14
【问题描述】:

我刚刚在 Okta 注册了一个开发测试帐户,以使用 Okta 的身份验证服务和用户管理来测试 OIDC。

使用他们的管理门户,我创建了第二个组,称为测试组以及默认组所有人,并将我的单个用户添加到两个组中。

然后我添加了一个名为 My SPA 的应用程序,并为测试组分配了对该应用程序的访问权限。

使用经典 UI,然后我编辑了 OpenID Connect ID 令牌部分并将组声明类型设置为 Expression 并添加 groups 作为声明名称和 getFilteredGroups(app.profile.groupwhitelist, "group.name", 40) 作为表达式。

然后我去编辑授权服务器。我添加了一个名为“组”的声明,其正则表达式为 *。可用于任何范围、访问令牌并始终包含。

然后我使用令牌预览选择我的用户并使用隐式授权流程,但没有显示任何组。

如何让用户的组在来自 Okta 身份验证服务器的 ID 或访问令牌中显示为声明?

编辑 我所拥有的屏幕截图:

【问题讨论】:

    标签: okta claims openid-connect


    【解决方案1】:

    我只使用开发者控制台进行配置。我是这样做的:

    导航到API > 授权服务器,点击授权服务器选项卡并编辑默认选项。点击声明标签和添加声明。将其命名为“组”或“角色”,并将其包含在 ID 令牌中。将值类型设置为“组”并将过滤器设置为.* 的正则表达式。

    【讨论】:

    • 这就是我上面描述的一切。当您这样做时,您是否能够在使用门户的令牌预览选项时看到新的声明?
    • 也许您对 Okta AS 进行了更改,而不是您的自定义?这是一个屏幕截图,证明它在我修改“默认” AS 时对我有用。 flickr.com/photos/mraible/41932672544/in/dateposted-public
    • 谢谢马特,我还附上了图片来向您展示我所看到的。一切似乎都和你的一样——减去角色声称。
    • 发现了我的问题!如果您在我的屏幕截图中注意到,我添加了 * 而不是 .* 的正则表达式。非常感谢 @sara-daqiq 帮助我理解这一点!
    【解决方案2】:

    您需要添加“组”范围。在范围内,除了profile和openid之外,还要添加“groups”

    【讨论】:

    • 这似乎没有帮助。
    【解决方案3】:

    我认为这里创建的组是为了将用户停放在相应的存储桶中(例如管理员/用户等),以便通过了解用户组,可以为授权派生角色。 但是,我建议在用户配置文件中使用 Okta 的自定义属性,以便用户信息可以具有必需的属性。 自定义属性可以设置为下拉式枚举以供选择,也可以在系统中添加用户时标记为强制。 https://support.okta.com/help/s/article/How-to-create-dropdown-enumerated-custom-attributes-in-Okta?language=en_US

    添加自定义属性 - https://help.okta.com/en/prod/Content/Topics/users-groups-profiles/usgp-add-custom-user-attributes.htm

    并将属性映射到 Okta 配置文件 - https://help.okta.com/en/prod/Content/Topics/users-groups-profiles/usgp-about-attribute-mappings.htm

    希望这也有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多