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

时间:2016-10-10 13:08:45

标签: wso2is claims-based-identity openid-connect

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

我已经为方言http://wso2.org/claims添加了新的声明,并且我还添加了新的声明,这些声明将相同的属性映射到与版本5.1.0一起使用但在5.2.0版本中无效的方言http://wso2.org/oidc/claim

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

以下是我的服务提供商的声明配置: enter image description here

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

2 个答案:

答案 0 :(得分:5)

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

我们举一个例子, 考虑默认所需范围需要获得“ openid ”的OIDC令牌

openid范围与以下方案绑定。

sub,email,email_verified,name,family_name,given_name,middle_name,nickname,preferred_username,profile,picture,website,gender,birthdate,zoneinfo,locale,updated_at,phone_number,phone_number_verified,address,street

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

enter image description here

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

enter image description here

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

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

答案 1 :(得分:-1)

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