Bum*_*bee 9 openid-connect keycloak
如何获取 keycloak 中 userinfo 端点的回复中包含的角色。我在 keycloak 中为用户定义了一个“角色映射”。当我调用 userinfo 端点时,我得到了电子邮件名称等字段,但回复中不包含角色。当我调用 auth 端点时,我得到了 access_token 并且在字段范围中包含了角色。这是来自 auth 端点的回复:
access_token" QJsonValue(string, "eyJhb...")
"expires_in" QJsonValue(double, 300)
"not-before-policy" QJsonValue(double, 0)
"refresh_expires_in" QJsonValue(double, 1800)
"refresh_token" QJsonValue(string, "eyJhb...")
"scope" QJsonValue(string, "profile email roles")
"session_state" QJsonValue(string, "20b48536-4b38-4aa6-9072-e8309833402e")
"token_type" QJsonValue(string, "bearer")
Run Code Online (Sandbox Code Playgroud)
我还尝试使用属性“scope=roles”调用 userinfo 端点,但这不起作用。
将 中的声明重命名为(并设置为 ON)时Client Scopes -> roles -> Mappers -> realm roles/client roles,realm_access.roles它realm_accessy.roles包含Add to userinfo在 userinfo 中:-/
正如有人已经提到的,这是一个错误。我听说它已在最新版本的 keycloak 中修复。
我最终修复了这个设置,而没有升级到 keycloak 的固定版本。
当您添加用户领域角色时,它将具有“realm_access.roles”作为令牌声明名称。您需要将其更改为"roles"。然后它将在用户信息中正确显示。
| 归档时间: |
|
| 查看次数: |
4594 次 |
| 最近记录: |