WSO2 IS:5.2.0 中的 OpenID Connect 自定义声明?

WSO2 IS: OpenID Connect custom claims in 5.2.0?

我已经安装了 WSO2 IS 5.2.0,但在检索自定义创建的声明时遇到问题。

我已经为方言 http://wso2.org/claims and I also added new claims that map the same attribute to dialect http://wso2.org/oidc/claim 添加了新的声明,它适用于版本 5.1.0 但在版本 5.2.0 中不起作用。

所有字段都存在于数据库属性 table 中。我正在使用 Oauth2 OpenID 连接 userInfo 来获取用户数据。

这是我的服务提供商的声明配置:

使用 5.1.0 中的此配置,我从图像中获得了所有请求的声明,但在 5.2.0 中,我仅获得了非自定义声明 - 默认情况下已存在于两种方言中。

原因可能是映射的属性。您需要在 OIDC 方言和 wso2 方言中为自定义声明配置相同的 maapped 属性

此行为的原因是在 5.2.0 中引入了 OpenIDConnect 声明范围。因此,基本上当您请求 OIDC 令牌时,您可以指定一个绑定到一组声明的范围值。因此,当您将该 OIDC 令牌发送到 userinfo 端点时,只会返回那些在 OIDC 范围配置和 SP 声明配置(即这两个配置中声明的交集)中常见的声明。

举个例子, 考虑默认要求的范围需要获得 OIDC 令牌,即 'openid'

openid 范围绑定到以下方案。

子、电子邮件、email_verified、姓名、family_name、given_name、middle_name、昵称、preferred_username、个人资料、图片、网站、性别,birthdate,zoneinfo,locale,updated_at,phone_number,phone_number_verified,address,street

(您可以使用注册表中 /_system/config/oidc 中的 'oidc' 文件进行配置)

因此,在您的情况下,请通过编辑 oidc 文件将自定义声明 slotCentreURL、role、slotCentre 添加到此范围的映射声明中。

或者,您可以添加一个新范围,例如“customSSPScope1”,其中包含您需要的声明,除了强制性 openid 之外,在获取 OIDC 令牌时发送它 范围。

您还需要在服务提供商配置中配置所需的声明。这里的逻辑是只返回在 OIDC 范围级别配置的声明和在 SP 级别配置的声明的交集。