Red Hat Training

A Red Hat training course is available for RHEL 8

8.3. IdM で SSSD を使用してユーザーとして認証する場合にデータフロー

IdM サーバーまたはクライアントでユーザーとして認証するには、以下のコンポーネントが必要です。

  • sshd サービスなどの認証要求を開始するサービス
  • PAM (プラグ可能な認証モジュール) ライブラリーとそのモジュール。
  • SSSD サービス、そのレスポンダー、およびバックエンド。
  • スマートカード認証が設定されている場合は、スマートカードリーダー。
  • 認証サーバー:

    • IdM ユーザーは、IdM Kerberos Key Distribution Center (KDC) に対して認証されます。
    • Active Directory (AD) ユーザーは、AD ドメインコントローラー (DC) に対して認証されます。

以下の図は、コマンドラインの SSH サービスを介してホストにローカルでログインしようとすると、情報フローを簡単に認証する必要がある場合を示しています。

A diagram with numbered arrows representing the flow of information between an IdM client and an IdM server or AD Domain Controller during an authentication attempt. The following numbered list describes each step in the process.

  1. ssh コマンドで認証を試みると、libpam ライブラリーがトリガーされます。
  2. libpam ライブラリー は、認証の試行を要求するサービスに対応する /etc/pam.d/ ディレクトリーの PAM ファイルを参照します。この例では、ローカルホストの SSH サービス経由で認証されている例では、pam_sss.so ライブラリーは /etc/pam.d/system-auth 設定ファイルを確認し、SSSD PAM の pam_sss.so エントリーを検出します。

    auth    sufficient    pam_sss.so
  3. 利用可能な認証方法を判断するため、libpam ライブラリーは pam_sss モジュールを開き、SSSD サービスの sssd _pam PAM レスポンダーに SSS_PAM_PREAUTH リクエスト を送信します。
  4. スマートカード認証が設定されていると、SSSD サービスは一時的な p11_child プロセスを生成し、スマートカードを確認し、そこから証明書を取得します。
  5. ユーザーにスマートカード認証が設定されていると、sssd_pam レスポンダーは、スマートカードの証明書とユーザーを照合します。sssd_pam レスポンダーは、グループメンバーシップがアクセス制御に影響する可能性があるため、ユーザーが属するグループの検索も実行します。
  6. sssd_pam レスポンダーは、SSS_PAM_PREAUTH 要求を sssd_be バックエンドレスに送信し、パスワードや 2 要素認証などのサーバーがサポートする認証方法を表示します。SSSD サービスが IPA レスポンダーを使用する IdM 環境では、デフォルトの認証方法は Kerberos です。この例では、ユーザーは簡単な Kerberos パスワードで認証されます。
  7. sssd_be レスポンダーは一時的な krb5_child プロセスを起動します。
  8. krb5_child プロセスは、IdM サーバーの KDC に連絡して、利用可能な認証方法を確認します。
  9. KDC はリクエストに応答します。

    1. krb5_child プロセスは応答を評価し、結果を sssd_be バックエンドプロセスに送信します。
    2. sssd_be バックエンドプロセスが結果を受け取ります。
    3. sssd_pam レスポンダーは結果を受け取ります。
    4. pam_sss モジュールは結果を受け取ります。
  10. ユーザーにパスワード認証が設定されていると、pam_sss モジュールにより、パスワードの入力が求められます。スマートカード認証が設定されていると、pam_sss モジュールにより、スマートカードの PIN の入力が求められます。
  11. モジュールは、ユーザー名とパスワードを使用して SSS_PAM_ AUTHENTICATE 要求を送信します。これは以下が実行されます。

    1. sssd_pam レスポンダー。
    2. sssd_be バックエンドプロセス。
  12. sssd_be プロセスは、KDC に問い合わせる一時的な krb5_child プロセスを起動します。
  13. krb5_child process は、ユーザー名とパスワードを使用して KDC から Kerberos チケット保証チケット (TGT) の取得を試みます。
  14. krb5_child プロセスは、認証の試行の結果を受け取ります。
  15. krb5_child プロセス:

    1. TGT を認証情報キャッシュに保存します。
    2. sssd_be バックエンドプロセスに認証結果を返します。
  16. 認証結果は sssd_be プロセスから以下を行います。

    1. sssd_pam レスポンダー。
    2. pam_sss モジュール。
  17. pam_sss モジュールは、その他のアプリケーションが参照できるように、環境変数をユーザーの TGT の場所で設定します。