Keycloak更新管理员用户邮箱与姓名报错且SMTP测试失败如何解决
Keycloak SMTP测试管理员邮箱配置失败解决方案
问题说明
测试Keycloak的SMTP邮件配置时触发报错Error! Logged in user does not have an e-mail.,本质是当前登录的管理员账号未绑定有效邮箱,修改管理员账号的邮箱、姓名信息时触发的报错通常和realm上下文错误、权限配置、用户属性必填校验三类原因相关。
可行解决思路
- 确认操作的realm上下文正确
全局管理员默认创建在
masterrealm下,必须切换到master realm的用户管理页面修改该账号信息,在其他业务realm中操作会触发权限不足或用户不存在类报错。 - 临时关闭用户属性必填校验
- 进入当前操作的realm,依次点击
Realm settings→User profile - 分别找到
email、firstName、lastName三个属性,进入编辑页取消勾选Required后保存配置 - 回到用户列表找到目标管理员账号,填写邮箱、姓名信息后保存
- 配置完成后可按需将上述属性的必填校验恢复为原有配置
- 进入当前操作的realm,依次点击
- 命令行强制修改管理员信息(适配WebUI操作报错场景)
进入Keycloak服务部署目录的bin文件夹,执行以下命令:# 登录kcadm工具,替换占位符为你的管理员账号、密码 ./kcadm.sh config credentials --server http://localhost:8080 --realm master --user <ADMIN_USERNAME> --password <ADMIN_PASSWORD> # 更新管理员邮箱、姓名信息,替换占位符为对应的管理员用户ID、邮箱、姓名 ./kcadm.sh update users/<ADMIN_USER_ID> -r master -s "email=<YOUR_EMAIL>" -s "firstName=<YOUR_NAME>" -s "emailVerified=true"
完成上述配置后,回到SMTP配置页面点击测试即可正常发送验证邮件。
内容的提问来源于stack exchange,提问作者vv01
相关产品推荐
相关产品推荐

