Keycloak客户端映射器配置问题:如何转换邮箱为小写
Keycloak 邮箱地址转小写映射方案
方案一:Script Mapper(灵活可控,推荐)
- 进入目标客户端的专属Client Scope,点击「Mappers」→「Create」
- 选择「Script Mapper」类型
- 配置参数:
- Name:自定义名称(如
Lowercase Email) - Script Type:选择
JavaScript - Script:输入以下代码,直接获取邮箱并转小写
const email = user.getEmail(); return email ? email.toLowerCase() : null; - Token Claim Name:填写
email可覆盖原有邮箱字段,或填lowercase_email新增字段 - Add to ID Token/Add to Access Token:根据需求勾选对应Token类型
- Name:自定义名称(如
- 保存即可生效
方案二:User Property Mapper + 表达式转换
- 进入Mappers创建页面,选择「User Property」类型
- 配置参数:
- Name:自定义名称(如
Lowercase Email) - Property:填写
email - Token Claim Name:填写
email(或自定义字段名)
- Name:自定义名称(如
- 展开「Advanced」选项,在「Claim Value Transformer」中选择「Script Transformer」
- 输入转换脚本:
value.toLowerCase() - 保存后,该映射器会自动处理邮箱小写转换
注意事项
如果找不到Script Mapper选项,大概率是Keycloak默认禁用了脚本功能,需手动开启:
- Quarkus版本(Keycloak 17+):在
keycloak.conf中添加配置:spi-scripting-javascript-enabled=true - WildFly版本:在
standalone.xml中找到<spi name="scripting">节点,设置<default-provider>javascript</default-provider>并确保启用
内容的提问来源于stack exchange,提问作者MelonUsk
相关产品推荐
相关产品推荐

