如何定义OIDC / userinfo请求的用户声明列表

时间:2014-10-28 09:03:43

标签: wso2is

我在WSO2 Identity Server 5.0.0中运行自定义UserStoreManager作为辅助用户存储。 它非常适合用户身份验证。 将其与OpenID Connect身份验证一起使用时,预期的声明不会在/userinfo?schema=openid请求的响应中返回给客户端。 登录自定义UserStoreManager会显示使用以下声明名称调用getUserPropertyValues()方法:

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

/userinfo请求的响应实际上只返回该列表中的声明。无法获得其他索赔。

我不明白这个清单的来源。为“http://wso2.org/oidc/claim”配置的声明映射将例如“postalcode”定义为“Supported by Default = false”和“Required = false”。 所以我不指望它在列表中。另一方面,声明“sub”(或它映射到的名称:“uid”)不在列表中,但其在方言“http://wso2.org/oidc/claim”中的定义是

  • 声明Uri:sub
  • 映射属性:uid
  • 默认支持:true
  • 必填: true

此外,“sub”是OIDC规范定义所要求的声明(见http://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse)。

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

1 个答案:

答案 0 :(得分: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()方法。

以下配置用于管理控制台配置文件管理

默认支持= true 在管理控制台中,默认情况下可以编辑此属性 必需=真 更新用户个人资料时必须提交此属性。