You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Keycloak生成的JWT Token中添加Realm ID

在Keycloak 19.0.1中把Realm ID添加到JWT Token的方法

因为Keycloak 19.0.1没有自带Realm ID的预定义映射器,你可以通过自定义脚本映射器来实现,步骤如下:

  • 登录Keycloak管理控制台,切换到你需要配置的Realm。
  • 如果你想复用这个映射器给多个客户端,先去「客户端范围」页面创建一个新的客户端范围(比如命名为realm-id-scope);如果只给单个客户端用,直接进入目标客户端的配置页面。
  • 进入对应客户端范围/客户端的「映射器」标签页,点击「创建」按钮。
  • 在映射器配置页面:
    1. 映射器类型选择「Script Mapper」。
    2. 填写名称,比如「Realm ID 映射器」。
    3. 脚本类型选择「Token Mapper」。
    4. 在脚本框中输入以下代码,把Realm ID添加到JWT的realm_id字段(字段名可以根据你的需求修改):
      var realmId = realm.getId();
      token.setClaim("realm_id", realmId);
      
    5. 在「Token类型」部分勾选你需要添加该字段的Token类型(比如「Access Token」和「ID Token」)。
  • 保存配置后,把客户端范围关联到目标客户端(如果用了客户端范围的话),之后生成的JWT里就会包含Realm ID字段了。

另外需要注意:如果你的Keycloak实例禁用了脚本功能,需要先开启。可以在Realm设置的「Features」标签里找到「Script Mapper」并勾选启用,或者在配置文件中设置spi-scripting-enabled=true(具体取决于你的部署方式)。

内容的提问来源于stack exchange,提问作者Fadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:01:03