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

如何在Keycloak生成的JWT中包含用户配置文件自定义属性

解决自定义用户属性无法写入JWT的问题

先排查映射器类型是否选错

你之前提到用了“映射角色的方式”,大概率是选错了映射器类型。正确的做法是创建User Attribute类型的映射器,步骤如下:

  • 进入目标客户端的「Client Scopes」,找到你的专属作用域,打开「Mappers」标签页
  • 点击「Create」,选择「User Attribute」类型
  • 配置项注意:
    • User Attribute:必须和你在Realm Settings -> User Profile里定义的属性名大小写完全一致(比如Department)
    • Token Claim Name:填JWT里要显示的字段名(比如department)
    • 勾选「Add to ID token」和「Add to access token」
    • Claim JSON Type根据属性类型选(比如字符串就选String)

确认作用域已关联客户端

  • 回到客户端的「Client Scopes」标签页,检查你的专属作用域是否在「Assigned Default Client Scopes」列表里
  • 如果是放在「Assigned Optional Client Scopes」,登录时必须在请求参数里加上scope=openid 你的作用域名,否则不会触发这个作用域的映射

检查用户属性是否有实际值

  • 去「Users」找到测试用户,进入「Attributes」标签页,确认Department、Region、OfficeId这几个属性已经填了具体内容——空属性不会被写入JWT

重新获取token验证

  • 登出后重新登录拿新的token,用解码工具查看内容,确认自定义字段是否存在
  • 如果还是没有,检查客户端「Settings」里的「Access Token Lifespan」,避免用了过期的旧token

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:14:52