Closed2

KeycloakとFreeIPAをLDAPで連携しているとき無効ユーザーを同期する

hrkohrko

本当はこのスレッドに書いてあるように、FreeIPA側の nsAccountLock 属性をどうにかしてKeycloak側の enabled 属性に割り当てる事ができれば一番だが、用意されている属性マッパー(user-attribute-ldap-mapper)には真偽値を反転させるような機能はついていない。

頑張れば独自のマッパーを書くことで解決できそうだが、なかなかに労力が要ると思うので、今回はLDAPフィルターでなんとかした方法を書き残しておく。

User LDAP filter の欄に (!(nsAccountLock=TRUE)) と書いておけば、FreeIPA側で無効にされたユーザーはKeycloakのデータベースから削除される。

注意点としては、FreeIPA側でユーザーを無効にすると、当該ユーザーはKeycloak上から削除されてしまうため、Keycloak側にだけ保存される情報(OTPやPasskey等の情報)も同時に消えてしまう点がある。

もっとも、頻繁に特定のユーザーを無効化/有効化するのでもない限り、ほとんどのケースで問題ないと思う。

このスクラップは2023/06/27にクローズされました