第12章 IdM で SSSD を使用した認証のトラブルシューティング
Identity Management (IdM) 環境での認証には、以下に示す多くのコンポーネントが関係します。
IdM クライアント:
- SSSD サービス
- Name Services Switch (NSS)
- Pluggable Authentication Modules (PAM)
IdM サーバー:
- SSSD サービス
- IdM Directory Server
- IdM Kerberos Key Distribution Center (KDC)
Active Directory (AD) ユーザーとして認証する場合:
- AD ドメインコントローラー上の Directory Server
- AD ドメインコントローラー上の Kerberos サーバー
ユーザーを認証するには、SSSD サービスで以下の機能を実行できる必要があります。
- 認証サーバーからユーザー情報を取得します。
- ユーザーに認証情報を要求し、それらの認証情報を認証サーバーに渡し、結果を処理します。
トラブルシューティングを実行するには、SSSD サービスとユーザー情報を保存するサーバー間で情報がどのように流れるかを把握する必要があります。これにより、問題が発生している場所を特定し、潜在的な原因を絞り込むことができます。
12.1. SSSD で IdM ユーザー情報を取得するデータフロー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の図は、getent passwd <idm_user_name> コマンドを使用して IdM ユーザー情報の要求時に IdM クライアントと IdM サーバーとの間の情報フローを簡単に説明します。
getent passwd を使用してユーザー情報を取得する場合の IdM クライアントとサーバー間の情報フロー
-
getentコマンドは、libcライブラリーからgetpwnam呼び出しをトリガーします。 -
libcライブラリーは、/etc/nsswitch.conf設定ファイルを参照して、どのサービスがユーザー情報を提供するかを確認し、SSSD サービスのエントリーsssを検出します。 -
libcライブラリーは、nss_sssモジュールを開きます。 -
nss_sss モジュールは、ユーザー情報のメモリーマップキャッシュを確認します。データがキャッシュに存在する場合は、
nss_sssモジュールがそれを返します。 -
ユーザー情報が memory-mapped キャッシュにない場合、リクエストは SSSD
sssd_nssレスポンダープロセスに渡されます。 -
SSSD サービスはキャッシュをチェックします。データがキャッシュに存在し、有効な場合は、
sssd_nssレスポンダーがキャッシュからデータを読み取って、アプリケーションに返します。 -
データがキャッシュにない場合や期限切れである場合、
sssd_nssレスポンダーは適切なバックエンドプロセスに対してクエリーを実行し、応答を待機します。SSSD サービスは、sssd.conf設定ファイルでid_provider=ipaを設定して有効にした、IdM 環境の IPA バックエンドを使用します。 -
sssd_beバックエンドプロセスは IdM サーバーに接続して、IdM LDAP Directory Server から情報を要求します。 - IdM サーバーの SSSD バックエンドは、IdM クライアントの SSSD バックエンドプロセスに対応します。
- クライアントの SSSD バックエンドは、生成されるデータを SSSD キャッシュに保存し、キャッシュが更新されたレスポンダープロセスを警告します。
-
sssd_nssフロントエンドレスプロセスが SSSD キャッシュから情報を取得します。 -
sssd_nssレスポンダーは、nss_sssレスポンダーにユーザー情報を送信し、リクエストを完了します。 -
libcライブラリーは、要求したアプリケーションにユーザー情報を返します。