7.3. SSSD 向け ID プロバイダーと認証プロバイダーの設定

7.3.1. SSSD の ID プロバイダーと認証プロバイダーについて

SSSD ドメイン ID プロバイダーと認証プロバイダー

ID および認証プロバイダーは、SSSD 設定ファイル内で domains として設定されます。単一ドメインは、以下のように使用することができます。
  • アイデンティティープロバイダー (ユーザー情報向け)
  • 認証プロバイダー (認証リクエスト向け)
  • アクセス制御プロバイダー (承認リクエスト向け)
  • これらのプロバイダーの組み合わせ (対応するすべての操作が単一サーバー内で実行される場合)
SSSD 用に複数のドメインを設定できます。少なくとも 1 つのドメインを設定する必要があります。そうでなければ、SSSD は開始しません。
/etc/sssd/sssd.conf ファイル内の access_provider オプションが、ドメイン用に使われるアクセス制御プロバイダーを設定します。デフォルトで、オプションは permit に設定されます。これにより、すべてのアクセスが常に許可されます。詳細は、sssd.conf(5) の man ページを参照してください。

プロキシープロバイダー

プロキシープロバイダーは、SSSD とリソースとの間の中間的中継点の役割を持っています。このリソースがなければ SSSD は使用できません。プロキシープロバイダーを使用する際、SSSD はプロキシーサービスに接続し、プロキシーは指定されたライブラリーを読み込みます。
プロキシープロバイダーを使用して SSSD を設定すると、以下を使用できます。
  • 指紋スキャナーなどの別の認証メソッド
  • NIS などのレガシーシステム
  • /etc/passwd で定義されたローカルシステムアカウントおよびリモート認証

ID および認証プロバイダーの利用可能な組み合わせ

表7.1 ID および認証プロバイダーの利用可能な組み合わせ

アイデンティティープロバイダー認証プロバイダー
Identity Management [a]Identity Management [a]
Active Directory [a]Active Directory [a]
LDAPLDAP
LDAPKerberos
proxyproxy
proxyLDAP
proxyKerberos
[a] LDAP プロバイダータイプ。
本ガイドでは、すべてのプロバイダータイプを説明しているわけではないことに留意してください。詳細情報は、以下を参照してください。

7.3.2. SSSD 向け LDAP ドメインの設定

前提条件

  • SSSD をインストールします。
    # yum install sssd

SSSD を設定して LDAP ドメインを発見

  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. LDAP ドメイン用に [domain] セクションを作成します。
    [domain/LDAP_domain_name]
  3. LDAP サーバーをアイデンティティープロバイダーとして、または認証プロバイダーとして使用したいのか、もしくは両方として使用したいのかを指定します。
    1. LDAP サーバーをアイデンティティープロバイダーとして使用する場合は、id_provider オプションを ldap に設定します。
    2. LDAP サーバーを認証プロバイダーとして使用する場合は、auth_provider オプションを ldap に設定します。
    たとえば、LDAP サーバーを両方として使用する場合は、以下のとおりです。
    [domain/LDAP_domain_name]
    id_provider = ldap
    auth_provider = ldap
  4. LDAP サーバーを指定します。以下から 1 つ選択します。
    1. サーバーを明示的に定義するには、サーバーの URI を ldap_uri オプションで指定します。
      [domain/LDAP_domain_name]
      id_provider = ldap
      auth_provider = ldap
      
      ldap_uri = ldap://ldap.example.com
      ldap_uri オプションは、サーバーの IP アドレスも受信します。しかし、サーバー名の代わりに IP アドレスを使用すると、TLS/SSL 接続の失敗につながる場合があります。Red Hat ナレッジベースの 「Configuring an SSSD Provider to Use an IP Address in the Certificate Subject Name」 を参照してください。
    2. SSSD を設定し、DNS service discovery を動的に使用してサーバーを発見するには、「DNS Service Discovery の設定」 を参照してください。
    オプションとして、ldap_backup_uri オプションにおいてもバックアップサーバーを指定します。
  5. ldap_search_base オプションで、LDAP サーバーの検索ベースを指定します。
    [domain/LDAP_domain_name]
    id_provider = ldap
    auth_provider = ldap
    
    ldap_uri = ldap://ldap.example.com
    ldap_search_base = dc=example,dc=com
  6. LDAP サーバーへの安全な接続を確立するための方法を指定します。推奨されているのは、TLS 接続を使用する方法です。そのためには、ldap_id_use_start_tls オプションを有効にし、これらの CA 証明書関連のオプションを使用します。
    • ldap_tls_reqcert は、クライアントがサーバー証明書を要求するかどうか、そしてその証明書でどのような確認が行われるのかを指定します。
    • ldap_tls_cacert は、証明書を含むファイルを指定します。
    [domain/LDAP_domain_name]
    id_provider = ldap
    auth_provider = ldap
    
    ldap_uri = ldaps://ldap.example.com
    ldap_search_base = dc=example,dc=com
    
    ldap_id_use_start_tls = true
    ldap_tls_reqcert = demand
    ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt

    注記

    SSSD は常に、認証用に暗号化されたチャンネルを使用します。これにより、パスワードが暗号化されずにネットワーク上に送信されることが決してないようにします。ldap_id_use_start_tls = true により、アイデンティティールックアップ (id または getent のユーティリティーをベースとするコマンドなど) も暗号化されます。
  7. [sssd] セクションの domains オプションに新しいドメインを追加します。オプションは、SSSD がクエリーするドメインを一覧表示します。例を示します。
    domains = LDAP_domain_name, domain2

関連資料

上記の手順は、LDAP プロバイダー向けの基本的なオプションを示しています。詳細については以下を参照してください。
  • sssd.conf(5) の man ページでは、 すべてのドメインタイプで利用可能なグローバルオプションを説明しています。
  • sssd-ldap(5) の man ページでは、LDAP 固有のオプションを説明しています。

7.3.3. SSSD 向けファイルプロバイダーの設定

files プロバイダーが、SSSD で利用可能なこれらのファイルからユーザーおよびグループを使用できるようにするには、/etc/passwd ファイルおよび /etc/groups ファイルの内容を反映します。これにより、sss データベースを、/etc/nsswitch.conf ファイルのユーザーおよびグループに対する最初のソースとして設定できます。
passwd:     sss files
group:      sss files
この設定で、/etc/sssd/sssd.conf/etc/sssd/sssd.conf プロバイダーが設定されている場合は、Red Hat Enterprise Linux が、最初にユーザーおよびグループのクエリーをすべて SSSD に送信します。SSSD が実行していないか、要求されたエントリーを SSSD が見つけなかった場合、システムが、ローカルファイルのユーザーおよびグループを探すためにフォールバックします。LDAP ディレクトリーなどの中央データベースでほとんどのユーザーとグループを保存していると、この設定により、ユーザーおよびグループの検索速度を向上させます。

前提条件

  • SSSD をインストールします。
    # yum install sssd

SSSD を設定してファイルドメインを検出

  1. /etc/sssd/sssd.conf ファイルに次のセクションを追加します。
    [domain/files]
    id_provider = files
  2. 必要に応じて、/etc/sssd/sssd.conf ファイルのユーザーおよびグループの検出に対する最初のソースとして sss データベースを設定します。
    passwd:     sss files
    group:      sss files
  3. システムを起動する際に、sssd サービスが開始する方法で、システムを設定します。
    # systemctl enable sssd
  4. sssd サービスを再起動します。
    # systemctl restart sssd

関連資料

上記の手順は、files プロバイダー向けの基本的なオプションを示しています。詳細は以下を参照してください。
  • sssd.conf(5) の man ページでは、 すべてのドメインタイプで利用可能なグローバルオプションを説明しています。
  • man ページの sssd-files(5) では、files プロバイダーに固有のオプションを説明しています。

7.3.4. SSSD 向けプロキシープロバイダーの設定

前提条件

  • SSSD をインストールします。
    # yum install sssd

SSSD を設定してプロキシードメインを発見

  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. プロキシープロバイダー用に [domain] セクションを作成します。
    [domain/proxy_name]
  3. 認証プロバイダーを特定するには、以下を実行します。
    1. auth_provider オプションを proxy に設定します。
    2. proxy_pam_target オプションを使用して、PAM サービスを認証プロキシーに指定します。
    以下に例を示します。
    [domain/proxy_name]
    auth_provider = proxy
    proxy_pam_target = sssdpamproxy

    重要

    プロキシー PAM スタックに pam_sss.so が再帰的に 格納されていない ことを確認してください。
  4. アイデンティティープロバイダーを指定するには、以下を実行します。
    1. id_provider オプションを proxy に設定します。
    2. proxy_lib_name オプションを使用して、NSS ライブラリーをアイデンティティープロキシーに指定します。
    以下に例を示します。
    [domain/proxy_name]
    id_provider = proxy
    proxy_lib_name = nis
  5. [sssd] セクションの domains オプションに新しいドメインを追加します。オプションは、SSSD がクエリーするドメインを一覧表示します。例を示します。
    domains = proxy_name, domain2

関連資料

上記の手順は、プロキシープロバイダーの基本的なオプションを示しています。詳細については、sssd.conf(5) の man ページを参照してください。ここでは、すべてのドメインタイプで利用可能なグローバルオプションと、その他のプロキシー関連オプションについて説明しています。

7.3.5. Kerberos 認証プロバイダーの設定

前提条件

  • SSSD をインストールします。
    # yum install sssd

SSSD の設定による Kerberos ドメインの発見

  1. /etc/sssd/sssd.conf ファイルを開きます。
  2. SSSD ドメイン向けに [domain] セクションを作成
    [domain/Kerberos_domain_name]
  3. アイデンティティープロバイダーを指定します。たとえば、LDAP アイデンティティープロバイダーの設定に関する詳細は、「SSSD 向け LDAP ドメインの設定」 を参照してください。
    指定したアイデンティティープロバイダーで Kerberos のプリンシパル名を利用できない場合、SSSD は username@REALM 形式を使用してプリンシパルを構築します。
  4. Kerberos 認証プロバイダーの詳細を指定します。
    1. auth_provider オプションを krb5 に設定します。
      [domain/Kerberos_domain_name]
      id_provider = ldap
      auth_provider = krb5
    2. Kerberos サーバーを指定します。
      1. サーバーを明示的に定義するには、krb5_server オプションを使用します。オプションは、サーバーのホスト名または IP アドレスを受信します。
        [domain/Kerberos_domain_name]
        id_provider = ldap
        auth_provider = krb5
        
        krb5_server = kdc.example.com
      2. SSSD を設定し、DNS service discovery を動的に使用してサーバーを発見するには、「DNS Service Discovery の設定」 を参照してください。
      オプションとして、krb5_backup_server オプションにおいてもバックアップサーバーを指定します。
    3. パスワード変更サービスが、krb5_server または krb5_backup_server で指定した KDC 上で稼働していない場合、krb5_passwd オプションを使用してサーバーにサービスが稼働している場所を指定します。
      [domain/Kerberos_domain_name]
      id_provider = ldap
      auth_provider = krb5
      
      krb5_server = kdc.example.com
      krb5_backup_server = kerberos.example.com
      krb5_passwd = kerberos.admin.example.com
      krb5_passwd が使用されていない場合、SSSD は krb5_server または krb5_backup_server で指定された KDC を使用します。
    4. krb5_realm オプションを使用して、Kerberos レルム名を指定します。
      [domain/Kerberos_domain_name]
      id_provider = ldap
      auth_provider = krb5
      
      krb5_server = kerberos.example.com
      krb5_backup_server = kerberos2.example.com
      krb5_passwd = kerberos.admin.example.com
      krb5_realm = EXAMPLE.COM
  5. [sssd] セクションの domains オプションに新しいドメインを追加します。オプションは、SSSD がクエリーするドメインを一覧表示します。例を示します。
    domains = Kerberos_domain_name, domain2

関連資料

上記の手順は、Kerberos プロバイダー向けの基本的なオプションを示しています。詳細については以下を参照してください。
  • sssd.conf(5) の man ページでは、 すべてのドメインタイプで利用可能なグローバルオプションを説明しています。
  • sssd-krb5(5) の man ページでは、Kerberos 固有のオプションを説明しています。