我在本地安装了Keycloak 12的测试版本,但不幸的是,我忘记了管理员密码,请问有没有办法重置密码或重置Keycloak配置而不会丢失领域?
我已经使用了add-user cli命令添加了用户,但即使使用该用户也无法访问。
我在本地安装了Keycloak 12的测试版本,但不幸的是,我忘记了管理员密码,请问有没有办法重置密码或重置Keycloak配置而不会丢失领域?
我已经使用了add-user cli命令添加了用户,但即使使用该用户也无法访问。
16:16:35,881 WARN [org.keycloak.services] (ServerService Thread Pool -- 62) KC-SERVICES0104: Not creating user admin. It already exists.
要创建新的管理员用户,您应该在数据库中删除当前用户。或者,如果您喜欢,只需将管理员用户名更改为admin_bkp。之后,只需重新启动容器即可再次创建管理员用户。
连接到数据库
$ kubectl exec -it keycloak-database-bd94f668c-rvmbt -- bashbash-5.1$ psql $ keycloak -U postgre -W
删除或更新当前管理员用户:
psql (12.10)
Type "help" for help.
keycloak=# update user_entity set "username"='admin_bkp' where "username"='admin';
UPDATE 1
$ kubectl delete pod keycloak-database-bd94f668c-rvmbt
kubectl exec -it KEYCLOAK_DB_POD -- bash -c "psql keycloak -U postgres -W"
- Spanky对于我来说,我需要在user_entity表中找到用户。然后删除相关表中的行。完成这些操作后,我重新启动了Pod,管理员用户登录变成了通过环境变量KEYCLOAK_USER和KEYCLOAK_PASSWORD传递的用户。
查找用户ID
select * from user_entity
删除行
delete from credential where user_id = '<user-id>';
delete from user_role_mapping where user_id = '<user-id>';
delete from user_entity where id = '<user-id>';
docker inspect <keycloak_container_id>
然后搜索 Config > Env,您会发现 KEYCLOAK_USER 和 KEYCLOAK_PASSWORD。
sudo -u keycloak ./bin/add-user-keycloak.sh --user YourUser --password YourNewPass --realm YourRealm
- mjr