13.3. IdM で SSSD を使用してユーザーとして認証する場合にデータフロー
IdM サーバーまたはクライアントでユーザーとして認証するには、以下のコンポーネントが必要です。
-
sshdサービスなど、認証要求を開始するサービス。 - Pluggable Authentication Module (PAM) ライブラリーとそのモジュール。
- SSSD サービス、そのレスポンダー、およびバックエンド。
- スマートカード認証が設定されている場合は、スマートカードリーダー。
認証サーバー:
- IdM ユーザーは、IdM Kerberos Key Distribution Center (KDC) に対して認証されます。
- Active Directory (AD) ユーザーは、AD ドメインコントローラー (DC) に対して認証されます。
以下の図は、コマンドラインの SSH サービスを介してホストにローカルでログインしようとすると、情報フローを簡単に認証する必要がある場合を示しています。
認証試行中の IdM クライアントと IdM サーバーまたは AD ドメインコントローラー間の情報の流れ
-
sshコマンドで認証を試みると、libpamライブラリーがトリガーされます。 libpamライブラリーは、認証の試行を要求するサービスに対応する/etc/pam.d/ディレクトリーの PAM ファイルを参照します。この例では、ローカルホストの SSH サービス経由で認証されている例では、libpamライブラリーは/etc/pam.d/system-auth設定ファイルを確認し、SSSD PAM のpam_sss.soエントリーを検出します。auth sufficient pam_sss.so-
利用可能な認証方法を判断するため、
libpamライブラリーはpam_sssモジュールを開き、SSSD サービスのsssd _pamPAM レスポンダーにSSS_PAM_PREAUTHリクエストを送信します。 -
スマートカード認証が設定されていると、SSSD サービスは一時的な
p11_childプロセスを生成し、スマートカードを確認し、そこから証明書を取得します。 -
ユーザーにスマートカード認証が設定されていると、
sssd_pamレスポンダーは、スマートカードの証明書とユーザーを照合します。sssd_pamレスポンダーは、グループメンバーシップがアクセス制御に影響する可能性があるため、ユーザーが属するグループの検索も実行します。 -
sssd_pamレスポンダーは、SSS_PAM_PREAUTH要求をsssd_beバックエンドレスに送信し、パスワードや 2 要素認証などのサーバーがサポートする認証方法を表示します。SSSD サービスが IPA レスポンダーを使用する IdM 環境では、デフォルトの認証方法は Kerberos です。この例では、ユーザーは簡単な Kerberos パスワードで認証されます。 -
sssd_beレスポンダーは一時的なkrb5_childプロセスを起動します。 -
krb5_childプロセスは、IdM サーバーの KDC に連絡して、利用可能な認証方法を確認します。 KDC はリクエストに応答します。
-
krb5_childプロセスは応答を評価し、結果をsssd_beバックエンドプロセスに送信します。 -
sssd_beバックエンドプロセスが結果を受け取ります。 -
sssd_pamレスポンダーは結果を受け取ります。 -
pam_sssモジュールは結果を受け取ります。
-
-
ユーザーにパスワード認証が設定されていると、
pam_sssモジュールにより、パスワードの入力が求められます。スマートカード認証が設定されていると、pam_sssモジュールにより、スマートカードの PIN の入力が求められます。 モジュールがユーザー名とパスワードを使用して
SSS_PAM_AUTHENTICATE要求を送信します。これは次の宛先に送信されます。-
sssd_pamレスポンダー。 -
sssd_beバックエンドプロセス。
-
-
sssd_beプロセスは、KDC に問い合わせる一時的なkrb5_childプロセスを起動します。 -
krb5_childprocess は、ユーザー名とパスワードを使用して KDC から Kerberos チケット保証チケット (TGT) の取得を試みます。 -
krb5_childプロセスは、認証の試行の結果を受け取ります。 krb5_childプロセス:- TGT を認証情報キャッシュに保存します。
-
sssd_beバックエンドプロセスに認証結果を返します。
認証結果は
sssd_beプロセスから以下を行います。-
sssd_pamレスポンダー。 -
pam_sssモジュール。
-
-
pam_sssモジュールは、その他のアプリケーションが参照できるように、環境変数をユーザーの TGT の場所で設定します。