[当我按下/auth/realms/{realm}/protocol/openid-connect/userinfo
时,我得到的有关用户的信息很少。
{
"sub": "ed291f7a-a799-4d8b-a776-e634d727668c",
"email_verified": true,
"preferred_username": "admin"
}
更多信息(例如角色列表)在我实际发送到此端点的访问令牌中。我可以解码访问令牌而不是访问该端点,这是预期的/正常的行为,还是我做错了?
响应中存在的字段受访问令牌中存在的声明的范围限制。
Keycloak符合OpenID。
OpenID规范defines:
UserInfo端点是返回的OAuth 2.0受保护资源关于经过身份验证的最终用户的声明。获取请求关于最终用户的声明,客户端向UserInfo发出请求使用通过OpenID Connect获得的访问令牌的端点身份验证。这些声明通常由JSON对象表示包含声明的名称和值对的集合。
可以返回Section 5.1中定义的声明,此处未指定其他声明。