为啥在 Keycloak 中的默认客户端“admin-cli”中未在 JWT 中显示构建声明?

Posted

技术标签:

【中文标题】为啥在 Keycloak 中的默认客户端“admin-cli”中未在 JWT 中显示构建声明?【英文标题】:Why the buildin claims not shown in JWT from the default client “admin-cli” in Keycloak?为什么在 Keycloak 中的默认客户端“admin-cli”中未在 JWT 中显示构建声明? 【发布时间】:2021-05-25 07:55:59 【问题描述】:

在 keycloak 中,有一个默认客户端,其客户端 ID 为“admin-cli”。我尝试在此客户端中添加内置声明。

在此客户端下的映射器选项卡中,我添加了内置映射器“领域角色”。但是当我使用 API 从这个客户端获取 JWT 时:

http://url/auth/realms/realm/protocol/openid-connect/token

使用正确的 client_id,JWT 不包含声明。

我创建了另一个客户端并添加了具有相同配置的相同映射器,从该客户端请求的 JWT 包含声明。

知道为什么 JWT 中没有显示来自客户端“admin-cli”的声明吗?

【问题讨论】:

【参考方案1】:

知道为什么 JWT 中没有显示来自客户端“admin-cli”的声明吗?

是的,您需要:

去大师境界; 客户; 点击Admin-cli; 切换到范围; 在 admin-cli 范围映射中:将允许的完整范围设置为开启。

这将使所有领域和客户端角色都显示在令牌上。如果您只需要某些特定角色,请执行以下操作:

去大师境界; 客户; 点击Admin-cli; 切换到范围; 在 admin-cli 范围映射中: 选择领域角色(或客户端角色),然后移至分配的角色列。

【讨论】:

以上是关于为啥在 Keycloak 中的默认客户端“admin-cli”中未在 JWT 中显示构建声明?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我看不到 Keycloak 发出的 JWT 中的组?

keycloak,为啥后端频道需要重定向 url

为啥 keycloak 会删除重定向 uri 中的 SSL?

为啥我收到 Spring Security 和 Keycloak 的“访问被拒绝”错误?

为啥在较新版本的 Keycloak 中不允许使用身份验证流程中的脚本

为啥 Keycloak 管理控制台中的密码字段会删除我输入的密码开头和结尾的空格