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

Keycloak 12丢失管理员密码如何重置且不丢失已有Realm配置?

Keycloak 12 本地管理员密码重置方案(不丢失已有Realm数据)

你之前使用add-user命令添加后无法登录,是因为该命令是Keycloak底层依赖的WildFly应用服务器的原生管理员添加指令,生成的账号仅可访问WildFly管理控制台(默认端口9990),无法登录Keycloak身份管理控制台。

方案1:通过Keycloak专属CLI添加master realm管理员(操作最简单)

  • 停止当前运行的Keycloak服务
  • 进入Keycloak根目录下的bin文件夹
  • 根据操作系统执行对应命令:
    • Linux/Mac系统:./add-user-keycloak.sh -r master -u <新管理员用户名> -p <新管理员密码>
    • Windows系统:add-user-keycloak.bat -r master -u <新管理员用户名> -p <新管理员密码>
  • 命令执行成功后重新启动Keycloak服务,使用新账号密码访问Keycloak管理控制台即可正常登录

方案2:操作数据库重置原有管理员密码(需记得原有管理员用户名)

该方案适合需要保留原管理员账号的场景,不会修改任何业务Realm的数据:

  • 停止Keycloak服务,避免数据库读写冲突
  • 登录Keycloak使用的后端数据库,执行以下操作:
    1. 查询master realm中原有管理员的用户ID:
    SELECT id, username FROM user_entity WHERE realm_id = 'master' AND username = '<原有管理员用户名>';
    
    1. 生成符合Keycloak默认规则的BCrypt密码哈希(迭代次数为11)
    2. 更新该用户的登录凭证:
    UPDATE credential 
    SET secret_data = '{"value":"<生成的BCrypt哈希值>","salt":"","additionalParameters":{}}', 
        credential_data = '{"hashIterations":11,"algorithm":"bcrypt"}' 
    WHERE user_id = '<上一步查询到的用户ID>' AND type = 'password';
    
  • 操作完成后启动Keycloak服务,使用原有用户名和新密码登录即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:12:05