为什么buildin声明没有在JWT中显示来自默认客户端&x201C;管理cli”;穿钥匙斗篷?

为什么buildin声明没有在JWT中显示来自默认客户端&x201C;管理cli”;穿钥匙斗篷?,jwt,keycloak,keycloak-services,keycloak-rest-api,Jwt,Keycloak,Keycloak Services,Keycloak Rest Api,在KeyClope中,有一个默认客户端,其客户端id为“admin cli”。我尝试向该客户端添加一个buildin声明 在这个客户端下的Mappers选项卡中,我添加了BuildinMapperRealmRoles。但是当我使用API从这个客户机获得JWT时: http://{{url}}/auth/realms/{{realm}}/protocol/openid-connect/token 如果客户id正确,JWT不包括索赔 我创建了另一个客户端并添加了具有相同配置的同一映射程序,该客户端

在KeyClope中,有一个默认客户端,其客户端id为“admin cli”。我尝试向该客户端添加一个buildin声明

在这个客户端下的Mappers选项卡中,我添加了BuildinMapperRealmRoles。但是当我使用API从这个客户机获得JWT时:

http://{{url}}/auth/realms/{{realm}}/protocol/openid-connect/token
如果客户id正确,JWT不包括索赔

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

你知道为什么客户端“admin cli”的JWT中没有显示该声明吗

你知道为什么客户端“admin cli”的JWT中没有显示该声明吗

是的,您需要:

  • 去主宰世界
  • 客户
  • 点击Admin cli
  • 切换到范围
  • 在admin cli作用域映射中:将允许的完整作用域设置为ON

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

  • 去主宰世界
  • 客户
  • 点击Admin cli
  • 切换到范围
  • 在管理cli范围映射中:
  • 选择领域角色(或客户端角色),然后移动到“分配的角色”列