4.4. SSSD および FreeIPA Identity Management の統合
Red Hat Single Sign-On には、SSSD (System Security Services Daemon) プラグインが含まれます。SSSD は Fedora および Red Hat Enterprise Linux (RHEL) に含まれており、複数の ID プロバイダーおよび認証プロバイダーへのアクセスを提供します。SSSD は、フェイルオーバーやオフラインサポートなどの利点も提供します。詳細は、Red Hat Enterprise Linux Identity Management のドキュメント を参照してください。
SSSD は、認証とアクセス制御を提供する FreeIPA アイデンティティー管理 (IdM) サーバーとも統合します。この統合により、Red Hat Single Sign-On は特権のあるアクセス管理 (PAM) サービスに対して認証し、SSSD からユーザーデータを取得できます。Linux 環境における Red Hat Identity Management の使用に関する詳細は、Red Hat Enterprise Linux Identity Management のドキュメント を参照してください。
Red Hat Single Sign-On および SSSD は、読み取り専用の D-Bus インターフェイスを介して通信します。このため、ユーザーのプロビジョニングおよび更新方法は、FreeIPA/IdM 管理インターフェイスを使用する方法です。デフォルトでは、インターフェイスはユーザー名、メール、名、および姓をインポートします。
Red Hat Single Sign-On は、グループおよびロールを自動的に登録しますが、同期しません。Red Hat Single Sign-On の Red Hat Single Sign-On 管理者による変更は SSSD と同期しません。
4.4.1. freeipa/IdM サーバー
FreeIPA Docker イメージ は、Docker Hub で入手できます。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
server.freeipa.local
のパラメーター-h
は FreeIPA/IdM サーバーのホスト名を表します。YOUR_PASSWORD
を独自のパスワードに変更します。コンテナーが起動したら、
/etc/hosts
ファイルを以下のように変更します。x.x.x.x server.freeipa.local
この変更を加えない場合は、DNS サーバーを設定する必要があります。
以下のコマンドを使用して、SSSD フェデレーションプロバイダーが Red Hat Single Sign-On で開始および実行されるように、IPA ドメインに Linux サーバーを登録します。
ipa-client-install --mkhomedir -p admin -w password
クライアントで以下のコマンドを実行して、インストールが機能していることを確認します。
kinit admin
- パスワードを入力します。
以下のコマンドを使用して 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
kinit を使用してユーザーのパスワードを強制的に設定します。
kinit <username>
以下のコマンドを入力して通常の IPA 操作を復元します。
kdestroy -A kinit admin
4.4.2. SSSD および D-Bus
フェデレーションプロバイダーは、D-BUS を使用して SSSD からデータを取得します。PAM を使用してデータを認証します。
手順
sssd-dbus RPM をインストールします。
$ sudo yum install sssd-dbus
以下のプロビジョニングスクリプトを実行します。
$ bin/federation-sssd-setup.sh
このスクリプトは、
/etc/sssd/sssd.conf
に以下の変更を加えます。[domain/your-hostname.local] ... ldap_user_extra_attrs = mail:mail, sn:sn, givenname:givenname, telephoneNumber:telephoneNumber ... [sssd] services = nss, sudo, pam, ssh, ifp ... [ifp] allowed_uids = root, yourOSUsername user_attributes = +mail, +telephoneNumber, +givenname, +sn
dbus-send
を実行して、設定が正常に行われていることを確認します。sudo dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserGroups string:john
設定に成功すると、ユーザーのグループが表示されます。このコマンドによってタイムアウトまたはエラーが返されると、Red Hat Single Sign-On で実行されているフェデレーションプロバイダーはデータを取得できません。このエラーは、通常、サーバーが FreeIPA IdM サーバーに登録されていないか、SSSD サービスにアクセスするパーミッションがないために発生します。
SSSD サービスにアクセスするパーミッションがない場合は、Red Hat Single Sign-On サーバーを実行しているユーザーが、以下のセクションの
/etc/sssd/sssd.conf
ファイルにあることを確認します。[ifp] allowed_uids = root, your_username
4.4.3. SSSD フェデレーションプロバイダーの有効化
Red Hat Single Sign-On は、D-Bus との低レベルの通信に DBus-Java を使用します。D-Bus は、Unix ソケットライブラリー によって異なります。
SSSD フェデレーションプロバイダーを有効にする前に、このライブラリーの RPM をインストールします。
$ sudo yum install rh-sso7-libunix-dbus-java
Red Hat Single Sign-On は JNA を使用して PAM で認証します。JAN パッケージがインストールされていることを確認します。
$ sudo yum install jna
sssctl user-checks
コマンドを使用して設定を検証します。
$ sudo sssctl user-checks admin -s keycloak