如何在Keycloak中从Access Token提取用户自定义属性?
解决Keycloak Access Token不返回自定义用户属性的问题
不用依赖管理员API,直接通过Keycloak的客户端映射器配置,就能把自定义的员工UUID属性注入到普通用户的Access Token中,步骤如下:
- 登录Keycloak管理控制台,进入目标Realm
- 找到你的业务客户端,切换到「Mappers」标签页
- 点击「Create」新建映射器,类型选择「User Attribute」
- 配置映射器参数:
- Name:自定义名称(比如「员工UUID映射器」)
- User Attribute:填写你存储员工UUID的属性键名(即你提到的「名称」字段)
- Token Claim Name:设置Token中该属性的字段名(比如
employee_uuid) - Claim JSON Type:选择
String(UUID为字符串类型) - 勾选「Add to access token」,确保属性被写入Access Token
- 若属性为多值,勾选「Multivalued」,否则保持默认
- 保存配置后,重新获取Access Token,就能在Token的Payload中看到该自定义属性
补充说明
- 配置完成后,普通用户的Access Token会自动携带该属性,无需调用管理员权限的API
- 需确保用户已正确设置该属性,否则Token中不会出现对应字段
- 多个自定义属性可重复上述步骤添加映射器
内容的提问来源于stack exchange,提问作者molLbach
相关产品推荐
相关产品推荐

