Keycloak の master レルムの管理ユーザを削除してしまったときの対応方法

Keycloak の master レルム管理ユーザを誤って削除した場合の復旧方法を解説。SQL クエリを使用したユーザ削除と再作成の手順を紹介します。

sasakiJune 8, 2024

みなさん Keycloak 利用してますか? ちょっとした API の打ち間違いなどで、master レルムの管理者ユーザ(環境変数で指定できる初期ユーザ)を誤って削除してしまうときってありますよね。あったんです。

ということで復旧を試みました。

まず、アプリを再起動してみましたが、復旧しませんでした。

こちらの記事にあるように、すでに master レルムに他のユーザが一人でも存在する場合、管理者ユーザは再作成されないようです。

なので、惜しいですが既存のユーザを全て削除することにしました、後から API で追加しなおすことにします。

以下の SQL を実行して master レルムのユーザを全て削除しました。

delete from user_role_mapping where user_id in (select id from user_entity where realm_id = 'master');
delete from federated_identity where user_id in (select id from user_entity where realm_id = 'master');
delete from user_group_membership where user_id in (select id from user_entity where realm_id = 'master');
delete from user_entity where realm_id = 'master';

この後 keycloak アプリを再起動すると、めでたく管理者ユーザが登録され、keycloak にログインして他ユーザを復活させることができました。

幸い他のレルムのユーザは消していなかったことと、master レルムのユーザがあまり多くないことから事なきを得ましたが、できれば他のユーザを全部吹っ飛ばさずに管理者ユーザだけ復活できると楽なんですけどね... みなさまご注意ください。