Openid KeyClope-userinfo响应中缺少数据

Openid KeyClope-userinfo响应中缺少数据,openid,keycloak,Openid,Keycloak,当我点击/auth/realms/{realm}/protocol/openid connect/userinfo时,我几乎没有得到关于用户的详细信息 { "sub": "ed291f7a-a799-4d8b-a776-e634d727668c", "email_verified": true, "preferred_username": "admin" } 更多信息(如角色列表)位于我实际发送到此端点的访问令牌中。我可以只解码访问令牌而不点击该端点,这是预期的/正常的

当我点击/auth/realms/{realm}/protocol/openid connect/userinfo时,我几乎没有得到关于用户的详细信息

{
    "sub": "ed291f7a-a799-4d8b-a776-e634d727668c",
    "email_verified": true,
    "preferred_username": "admin"
}

更多信息(如角色列表)位于我实际发送到此端点的访问令牌中。我可以只解码访问令牌而不点击该端点,这是预期的/正常的行为还是我做错了什么?

响应中的字段由访问令牌中的声明限定范围

KeyClope与OpenID兼容

OpenID规范:

UserInfo端点是一个OAuth 2.0保护的资源,返回 关于经过身份验证的最终用户的声明。获取所请求的 声明有关最终用户的信息时,客户端向UserInfo发出请求 使用通过OpenID Connect获得的访问令牌的端点 认证。这些声明通常由JSON对象表示 包含声明的名称和值对的集合

可以返回中定义的索赔,也可以 此处未指定其他索赔


响应中的字段由访问令牌中的声明限定范围

KeyClope与OpenID兼容

OpenID规范:

UserInfo端点是一个OAuth 2.0保护的资源,返回 关于经过身份验证的最终用户的声明。获取所请求的 声明有关最终用户的信息时,客户端向UserInfo发出请求 使用通过OpenID Connect获得的访问令牌的端点 认证。这些声明通常由JSON对象表示 包含声明的名称和值对的集合

可以返回中定义的索赔,也可以 此处未指定其他索赔


通过执行以下操作,我成功地将“客户端角色”和“领域角色”添加到Userinfo负载中:

转到客户端作用域>角色映射器>领域角色 打开“添加到用户信息”,关闭“添加到令牌”选项 将“Token Claim Name”更改为您想要的任何名称,一切都可以 同样适用于客户端角色,1。变成客户端范围>角色映射器>客户端角色
注意:角色必须是,但在“范围”选项卡的“分配”列中,我通过执行以下操作成功地将“客户端角色”和“领域角色”添加到Userinfo负载中:

转到客户端作用域>角色映射器>领域角色 打开“添加到用户信息”,关闭“添加到令牌”选项 将“Token Claim Name”更改为您想要的任何名称,一切都可以 同样适用于客户端角色,1。变成客户端范围>角色映射器>客户端角色
注意:角色必须是,但在“范围”选项卡的“分配”列中,解决方案是使用自定义令牌声明名称创建自定义映射器。预定义映射器中的realm_access.roles不起作用fsr

对我来说,解决方案是使用自定义令牌声明名称创建自定义映射器。预定义映射程序中的realm_access.roles不起作用fsr

请共享发送给userinfo endpoint的请求请共享发送给userinfo endpoint的请求