为啥在 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 会删除重定向 uri 中的 SSL?
为啥我收到 Spring Security 和 Keycloak 的“访问被拒绝”错误?