4.4. SSSD および FreeIPA Identity Management の統合
Red Hat build of Keycloak には、System Security Services Daemon (SSSD) プラグインが含まれています。SSSD は Fedora および Red Hat Enterprise Linux (RHEL) に含まれており、複数の ID プロバイダーおよび認証プロバイダーへのアクセスを提供します。SSSD は、フェイルオーバーやオフラインサポートなどの利点も提供します。詳細は、Red Hat Enterprise Linux Identity Management のドキュメント を参照してください。
SSSD は、認証とアクセス制御を提供する FreeIPA アイデンティティー管理 (IdM) サーバーとも統合します。この統合により、Red Hat build of Keycloak は特権アクセス管理 (PAM) サービスに対して認証し、SSSD からユーザーデータを取得できるようになります。Linux 環境における Red Hat Identity Management の使用に関する詳細は、Red Hat Enterprise Linux Identity Management のドキュメント を参照してください。
Red Hat build of Keycloak と SSSD は、読み取り専用の D-Bus インターフェイスを介して通信します。このため、ユーザーのプロビジョニングおよび更新方法は、FreeIPA/IdM 管理インターフェイスを使用する方法です。デフォルトでは、インターフェイスはユーザー名、メール、名、および姓をインポートします。
Red Hat build of Keycloak はグループとロールを自動的に登録しますが、同期はしません。Red Hat build of Keycloak 内で Red Hat build of Keycloak 管理者が加えた変更は、SSSD と同期されません。
4.4.1. FreeIPA/IdM サーバー リンクのコピーリンクがクリップボードにコピーされました!
FreeIPA コンテナーイメージ は Quay.io で入手できます。FreeIPA サーバーを設定するには、FreeIPA のドキュメント を参照してください。
手順
以下のコマンドを使用して FreeIPA サーバーを実行します。
docker run --name freeipa-server-container -it \ -h server.freeipa.local -e PASSWORD=YOUR_PASSWORD \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /var/lib/ipa-data:/data:Z freeipa/freeipa-server
docker run --name freeipa-server-container -it \ -h server.freeipa.local -e PASSWORD=YOUR_PASSWORD \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /var/lib/ipa-data:/data:Z freeipa/freeipa-server
Copy to Clipboard Copied! Toggle word wrap Toggle overflow server.freeipa.local
のパラメーター-h
は FreeIPA/IdM サーバーのホスト名を表します。YOUR_PASSWORD
を独自のパスワードに変更します。コンテナーが起動したら、
/etc/hosts
ファイルを以下のように変更します。x.x.x.x server.freeipa.local
x.x.x.x server.freeipa.local
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この変更を加えない場合は、DNS サーバーを設定する必要があります。
SSSD フェデレーションプロバイダーが Red Hat build of Keycloak で開始および実行されるように、以下のコマンドを使用して IPA ドメインに Linux サーバーを登録します。
ipa-client-install --mkhomedir -p admin -w password
ipa-client-install --mkhomedir -p admin -w password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントで以下のコマンドを実行して、インストールが機能していることを確認します。
kinit admin
kinit admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - パスワードを入力します。
以下のコマンドを使用して IPA サーバーにユーザーを追加します。
ipa user-add <username> --first=<first name> --last=<surname> --email=<email address> --phone=<telephoneNumber> --street=<street> --city=<city> --state=<state> --postalcode=<postal code> --password
$ ipa user-add <username> --first=<first name> --last=<surname> --email=<email address> --phone=<telephoneNumber> --street=<street> --city=<city> --state=<state> --postalcode=<postal code> --password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kinit を使用してユーザーのパスワードを強制的に設定します。
kinit <username>
kinit <username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力して通常の IPA 操作を復元します。
kdestroy -A kinit admin
kdestroy -A kinit admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2. SSSD および D-Bus リンクのコピーリンクがクリップボードにコピーされました!
フェデレーションプロバイダーは、D-BUS を使用して SSSD からデータを取得します。PAM を使用してデータを認証します。
手順
sssd-dbus RPM をインストールします。
sudo yum install sssd-dbus
$ sudo yum install sssd-dbus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のプロビジョニングスクリプトを実行します。
bin/federation-sssd-setup.sh
$ bin/federation-sssd-setup.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このスクリプトは、Red Hat build of Keycloak 用に SSSD と PAM を設定するためのガイドとしても使用できます。これを実行すると、
/etc/sssd/sssd.conf
に次の変更が加えられます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OS ユーザーがこのインターフェイスを介して IPA サーバーに問い合わせできるように、
ifp
サービスが SSSD に追加され、設定されます。このスクリプトは、SSSD 経由でユーザーを認証するための新しい PAM サービス (
/etc/pam.d/keycloak
) も作成します。auth required pam_sss.so account required pam_sss.so
auth required pam_sss.so account required pam_sss.so
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dbus-send
を実行して、設定が正常に行われていることを確認します。dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserAttr string:<username> array:string:mail,givenname,sn,telephoneNumber dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserGroups string:<username>
dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserAttr string:<username> array:string:mail,givenname,sn,telephoneNumber dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserGroups string:<username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow セットアップが成功すると、各コマンドでユーザーの属性とグループがそれぞれ表示されます。タイムアウトまたはエラーが発生した場合、Red Hat build of Keycloak で実行されているフェデレーションプロバイダーはデータを取得できません。このエラーは、通常、サーバーが FreeIPA IdM サーバーに登録されていないか、SSSD サービスにアクセスするパーミッションがないために発生します。
SSSD サービスにアクセスする権限がない場合は、Red Hat build of Keycloak サーバーを実行しているユーザーが次のセクションの
/etc/sssd/sssd.conf
ファイルに存在することを確認してください。[ifp] allowed_uids = root, yourOSUsername
[ifp] allowed_uids = root, yourOSUsername
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ホスト内に
ipaapi
システムユーザーが作成されます。このユーザーは、ifp
サービスに必要です。システムにユーザーが作成されたことを確認します。grep ipaapi /etc/passwd ipaapi:x:992:988:IPA Framework User:/:/sbin/nologin
grep ipaapi /etc/passwd ipaapi:x:992:988:IPA Framework User:/:/sbin/nologin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.3. SSSD フェデレーションプロバイダーの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak は、DBus-Java プロジェクトを使用して D-Bus および JNA と低レベルで通信し、オペレーティングシステムのプラグ可能な認証モジュール (PAM) 経由で認証します。
現在、Red Hat build of Keycloak には SSSD
プロバイダーの実行に必要なライブラリーがすべて含まれていますが、JDK バージョン 17 が必要です。そのため、ホスト設定が正しく、Red Hat build of Keycloak の実行に JDK 17 が使用されている場合に限り、SSSD
プロバイダーが表示されます。
4.4.4. フェデレーションされた SSSD ストアの設定 リンクのコピーリンクがクリップボードにコピーされました!
インストール後に、フェデレーションされた SSSD ストアを設定します。
手順
- メニューの User Federation をクリックします。
- すべてが正常にセットアップされると、Add Sssd providers ボタンがページに表示されます。そのボタンをクリックします。
- 新しいプロバイダーに名前を割り当てます。
- Save をクリックします。
これで、Red Hat build of Keycloak に対して、FreeIPA/IdM ユーザーと認証情報を使用して認証できるようになりました。