Keycloak 21版本:如何动态将Realm名称与ID添加至访问令牌
无需自定义映射器为Keycloak访问令牌添加Realm名称和ID的方法
用内置User Attribute映射器直接配置
不用写代码,直接在Keycloak客户端的「Client Scopes」里操作:选对应的客户端范围(比如默认的default),点击「Add Mapper」,类型选「User Attribute」。在「Attribute Name」里填realm.name或者realm.id,「Token Claim Name」自定义你要在令牌里显示的字段名(比如realm_name、realm_id),勾选「Access Token」选项后保存就行。这两个属性是Keycloak自带的,直接就能用。官方支持的Groovy脚本映射器
旧版JS映射器被弃用后,Keycloak保留了Groovy脚本的映射能力(需要先在服务器配置里开脚本支持:找到standalone.xml/domain.xml里的spi节点,把scripting的enabled设为true)。添加映射器时选「Script Mapper」,脚本里直接写:token.setClaim("realm_id", realm.getId()); token.setClaim("realm_name", realm.getName());这种是官方内置的功能,不算自定义映射器。
额外提示
标准OpenID Connect声明里没有Realm相关字段,所以没法通过简单开启配置直接获取,上面两种方法是最直接的无自定义映射器方案。
内容的提问来源于stack exchange,提问作者csf
相关产品推荐
相关产品推荐

