第14章 IdM で SSSD を使用した認証のトラブルシューティング
Identity Management (IdM) 環境の認証には、さまざまなコンポーネントが含まれます。
IdM クライアントで、以下を行います。
- SSSD サービス
- Name Services Switch (NSS)
- PAM (プラグ可能な認証モジュール)
IdM サーバーで、以下を行います。
- SSSD サービス
- IdM Directory Server。
- IdM Kerberos Key Distribution Center (KDC)
Active Directory (AD) ユーザーとして認証している場合は、以下を行います。
- AD ドメインコントローラー上の Directory Server。
- AD ドメインコントローラー上の Kerberos サーバー
ユーザーを認証するには、SSSD サービスで以下の機能を実行できる必要があります。
- 認証サーバーからユーザー情報を取得します。
- ユーザーに認証情報を求められ、それらの認証情報を認証サーバーに渡し、結果を処理します。
ユーザー情報を保存する SSSD サービスとサーバー間の情報フロー方法を説明し、環境で失敗した認証試行のトラブルシューティングを行うには、次を参照してください。
- SSSD で IdM ユーザー情報を取得するデータフロー
- SSSD で AD ユーザー情報を取得する際のデータフロー
- IdM で SSSD を使用してユーザーとして認証する場合にデータフロー
- 認証問題の範囲の制限
- SSSD ログファイルおよびログレベル
- sssd.conf ファイルで SSSD の詳細なロギングの有効化
- sssctl コマンドを使用した SSSD の詳細なロギングの有効化
- SSSD サービスからデバッグログを収集し、IdM サーバーによる認証問題のトラブルシューティング
- SSSD サービスからデバッグログを収集し、IdM クライアントによる認証問題のトラブルシューティング
- SSSD バックエンドでのクライアント要求の追跡
- ログアナライザーツールを使用したクライアント要求の追跡
14.1. SSSD で IdM ユーザー情報を取得するデータフロー
以下の図は、getent passwd <idm_user_name>
コマンドを使用して IdM ユーザー情報の要求時に IdM クライアントと 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
ライブラリーは、要求したアプリケーションにユーザー情報を返します。