【问题标题】:How to define list of user claims for OIDC /userinfo request如何为 OIDC /userinfo 请求定义用户声明列表
【发布时间】:2014-12-23 14:55:01
【问题描述】:

我有一个在 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”配置的声明映射将例如“邮政编码”定义为“默认支持=false”和“必需=false”。 所以我不希望它出现在列表中。另一方面声称“sub”(或它映射到的名称:“uid”)不在列表中,但它在方言“http://wso2.org/oidc/claim”中的定义是

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

此外,“sub”是 OIDC 规范定义的必需声明(请参阅 http://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse)。

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

【问题讨论】:

    标签: wso2is


    【解决方案1】:

    调用 userinfo 端点,我们获取http://wso2.com/oidc/claim dialect 下列出的声明的用户属性值。

    在声明配置中,我们在用户存储中拥有声明 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 在管理控制台中,默认情况下可以编辑此属性 必需=真 此属性必须在您更新用户配置文件时提交。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 2018-10-06
      • 1970-01-01
      相关资源
      最近更新 更多