2014-10-28 70 views
2

我有一个自定义的UserStoreManager作为辅助用户存储在WSO2 Identity Server 5.0.0中运行。 它完美地用于验证用户。 将其与OpenID Connect身份验证一起使用时,预期的声明不会返回到/userinfo?schema=openid请求的响应中的客户端。 记录在定制UserStoreManager揭示方法getUserPropertyValues()获取与以下权利要求名称调用:如何定义OIDC/userinfo请求的用户声明列表

["postalcode", "mail", "localityName", "sn", "cn", "nickName", "telephoneNumber", "gender", "givenName", "url", "country"] 

的响应于/userinfo请求实际上仅返回从该列表中声称。这是不可能的其他索赔被退回。

我不明白的是这个清单来自哪里。 “http://wso2.org/oidc/claim”的已配置声明映射将例如“postalcode”定义为“默认支持= false”和“必需= false”。 所以我不期望它在列表中。在另一方面,根据权利要求的“子”(或它被映射到名称:“UID”)是不在列表中,但其在方言定义“http://wso2.org/oidc/claim”是

  • 权利要求的URI:子
  • 映射属性(一个或多个):UID
  • 默认支持:真
  • 必需:

此外 “子” 是由OIDC规格的定义所要求的权利要求(见http://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse)。

哪里可以定义应该由/ userinfo?schema = openid请求为成功验证的用户返回的声明列表?

回答

0

调用userinfo端点,我们获得http://wso2.com/oidc/claim方言中列出的声明的用户属性值。

在声明配置中,我们声明了uri和用户存储中的特定属性(主用户和次用户存储的默认值)。 例如:http://wso2.org/oidc/claim/sub及其映射属性为uid

如果辅助用户存储不支持此默认属性值,则必须在映射属性下配置它。 例如:

secondary user store domain = SECONDARY_ 
supported attribute value fore sub = subject 
Configuration for mapped attribute = uid;SECONDARY_/subject 

现在,您将得到正确的属性值列表getUserPropertyValues()方法。

以下配置在管理控制台配置文件管理

默认支持=真 使用管理控制台中的这个属性默认提供 编辑必需=真 该属性必须提起,当你更新的用户配置文件。

相关问题