14.4.2. SSSD および D-Bus
前述のように、フェデレーションプロバイダーは D-BUS を使用して SSSD からデータを取得し、PAM を使用して認証を行います。
まず sssd-dbus RPM をインストールする必要があります。これにより、SSSD からの情報をシステムバスで送信できるようにします。
$ 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
また、keycloak ファイルは /etc/pam.d/ に含まれています。
auth required pam_sss.so
account required pam_sss.so
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 サービスにアクセスするパーミッションがありません。
パーミッションがない場合は、Red Hat Single Sign-On サーバーを実行しているユーザーが、以下のセクションの /etc/sssd/sssd.conf ファイルに含まれていることを確認します。
[ifp]
allowed_uids = root, your_username