2016-10-10 20 views
2

我已经安装了WSO2 IS 5.2.0,并且我有问题来检索自定义创建的声明。WSO2 IS:OpenID Connect 5.2.0中的自定义声明?

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

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

这是索赔的配置为我服务提供商: enter image description here

随着5.1.0版本的配置我都要求从图像的主张,但在5.2.0我得到的只是不属于自定义声明 - 这是已经以默认方式存在于两种方言中。

回答

4

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

让我们举个例子, 考虑默认要求范围需要获得一个OIDC令牌,该令牌是“的OpenID

OpenID的范围势必以下方案。

子,电子邮件,email_verified,姓名,FAMILY_NAME,GIVEN_NAME,middle_name,昵称,preferred_username,个人资料,照片,网站,性别,出生日期,时区信息,语言环境的updated_at,PHONE_NUMBER,phone_number_verified,地址,街道

(你可以在你的情况下,配置在/ _SYSTEM /配置/ OIDC在注册表中找到此使用“OIDC”文件)

enter image description here

所以,请添加自定义声明slotCentreURL,角色,slotCentre到这个映射索赔通过编辑oidc文件的范围。

enter image description here

另外,您可以添加一个新的范围说“customSPScope1”与索赔,你需要,让另外的OIDC令牌强制性的OpenID范围时发送。

您还需要在服务提供商配置中配置所需的声明。此处的逻辑是,仅返回在OIDC范围级别配置的索赔与在SP级别配置的索赔的交集。

+0

谢谢你的作品。这是否意味着服务提供商的索赔配置不再是问题? – zarej

+0

实际上,最终的输出是在SP处配置的OIDC范围索赔和索赔的交集。所以仍然在SP中配置的索赔很重要:) – farasath

+0

我也试图添加自定义声明,但不工作。我已经为两种方言添加了mobile_verified属性。然后编辑openid作用域并添加mobile_verified,但没有得到它在userinfo响应。你如何绘制新的范围?刚刚编辑openid或创建新的范围?物理文件有任何变化? –

-1

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

+0

情况并非如此,我在两种方言中都有相同的映射属性。相同的配置适用于5.1.0,但不适用于5.2.0。 – zarej