如何在Keycloak注册表单添加必填用户属性并使其纳入JWT?
Keycloak自定义属性配置方案
你的两个需求都完全可以实现,具体操作步骤如下:
一、将shop属性添加到默认注册表单
- 登录Keycloak管理后台,选中你创建的目标领域
- 左侧菜单点击「Authentication」→「Flows」
- 在流程列表找到「Registration」,点击右侧「Actions」→「Copy」,复制出一个自定义注册流程(不建议直接修改默认流程,防止版本升级被覆盖)
- 展开复制后的流程,找到「Registration User Creation」步骤,点击右侧「Actions」→「Config」
- 在配置界面,找到用户属性相关设置,勾选你创建的
shop属性,并设置为必填项,保存配置 - 回到「Authentication」→「Bindings」,将「Registration Flow」切换为你刚才修改好的自定义流程,保存即可
二、让shop属性包含在JWT令牌中
推荐用客户端映射器的方式实现,步骤如下:
- 在目标领域左侧菜单点击「Clients」,选中你的业务客户端
- 切换到「Mappers」标签页,点击「Create」新建映射器
- 映射器类型选择「User Attribute」
- 填写配置参数:
- Name:自定义名称(比如
shop属性映射) - User Attribute:填写
shop(和你创建的属性名完全一致) - Token Claim Name:填写JWT中要显示的字段名(比如
shop) - Claim JSON Type:选择
String - 勾选「Add to ID token」和「Add to access token」(根据你的业务需求选择,一般都勾选)
- Name:自定义名称(比如
- 保存配置后,新生成的JWT令牌就会包含
shop属性了
内容的提问来源于stack exchange,提问作者vito huang
相关产品推荐
相关产品推荐

