我安装了WSO2 IS 5.2.0,我在检索自定义创建的声明时遇到问题。
我已经为方言http://wso2.org/claims添加了新的声明,并且我还添加了新的声明,这些声明将相同的属性映射到与版本5.1.0一起使用但在5.2.0版本中无效的方言http://wso2.org/oidc/claim。
所有字段都存在于数据库属性表中。我正在使用Oauth2 OpenID连接userInfo来获取用户数据。
使用5.1.0中的这个配置,我从图像中获得了所有请求的声明,但在5.2.0中,我只得到非自定义的声明 - 默认情况下已经存在于两种方言中。
答案 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'文件进行配置)
因此,在您的情况下,请通过编辑oidc文件将自定义声明slotCentreURL,role,slotCentre添加到此范围的映射声明中。
或者,您可以添加一个新的范围,例如“ customSPScope1 ”,其中包含您需要的声明,除了强制 openid 范围外,还可以在获取OIDC令牌时发送。
您还需要在服务提供商配置中配置所需的声明。这里的逻辑是只返回在OIDC范围级别配置的声明和在SP级别配置的声明的交集。
答案 1 :(得分:-1)
原因可能是映射属性。您需要在OIDC方言和wso2方言中为自定义声明配置相同的maapped属性