19.14. パススルー認証での PAM の使用
パススルー認証とは、認証要求が 1 つのサーバーから別のサービスに転送されることです。
多くのシステムでは、Unix ユーザーおよび Linux ユーザー用の認証メカニズムがすでに含まれています。最も一般的な認証フレームワークの 1 つは、プラグ可能な認証モジュール (PAM) です。既存の認証サービスの多くが利用できるため、管理者はそれらのサービスを引き続き使用したいと思うかもしれません。PAM モジュールは、Directory Server に対して LDAP クライアントに既存の認証ストアを使用するように指示するように設定できます。
Red Hat Directory Server における PAM パススルー認証は、PAM パススルー認証プラグインを使用します。これにより、Directory Server が PAM サービスと通信して LDAP クライアントを認証できます。
図19.3 PAM パススルー認証プロセス
注記
PAM パススルー認証は、適切なマッピング方法 (ENTRY) が使用されていることを前提に、ユーザーを認証する際にアカウントの無効化と連動します。ただし、PAM パススルー認証では、パスワードは Directory Server ではなくPAM モジュールで設定され保存されるため、グローバルまたはローカルに設定されたパスワードポリシーに照らしてパスワードを検証することはできません。
19.14.1. PAM パススルー認証設定オプション
PAM パススルー認証は、PAM パススルー認証プラグインコンテナーエントリーの下にある子エントリーで構成されます。複数の PAM パススルー認証ポリシーがあり、接尾辞内の異なる接尾辞やエントリーに適用されます。
PAM パススルー用に設定できるエリアはいくつかあります。
- PAM パススルー認証プラグインで制御される接尾辞です。ここでは、除外する接尾辞および含める接尾辞と、欠落した接尾辞の処理方法を説明します。
- 認証設定のターゲットである、設定された接尾辞内の個々のエントリー。デフォルトでは、接尾辞内のすべてのエントリーが認証スコープに含まれますが、複数の異なる PAM パススルー認証プラグインインスタンスを設定し、異なるユーザーに異なるプラグイン設定を適用することが可能です。
- PAM 属性マッピング。Directory Server に提示された認証情報は、何らかの方法で LDAP エントリーにマッピングされ、さらに PAM サービスの認証情報に戻される必要があります。これは、マッピングメソッドを定義し、任意で認証情報と一致させるために使用する LDAP 属性を定義します。
- TLS 接続の使用や、使用する PAM サービス、および PAM 認証に失敗した場合の LDAP 認証へのフォールバックなど、一般的な設定。
注記
PAM パススルー認証プラグインには、複数の設定インスタンスが存在する場合があります。PAM パススルー認証プラグインのインスタンスは、
pamFilter
属性を使用して、プラグインで使用する特定のエントリーを検索するよう LDAP フィルターを設定することで、ユーザーエントリーのサブセットに適用できます。
設定可能な属性の一覧は、Red 『Hat Directory Server の設定、コマンド、およびファイルリファレンス』 の 『PAM パススルー認証プラグイン属性』 セクションを参照してください。
19.14.1.1. PAMPTA のターゲットとなるサフィックスの指定
PAM PTA プラグインは、明示的に除外されない限り、デフォルトですべての接尾辞にグローバルに適用されます。接尾辞を除外して組み込むと、ディレクトリーのエリアが LDAP 認証ではなく PAM 認証を使用する場合に役立ちます。
注記
PAM パススルー認証エントリーのターゲットは、任意のサブツリーではなく接尾辞でなければなりません。「接尾辞の作成および維持」 で説明されているように、userRoot に関連する cn=config や userRoot に関連するルート接尾辞 dc= example,dc=com など、特定のバックエンドデータベースに関連付けられるサブツリーです。
pamExcludeSuffix
属性は接尾辞を除外します。デフォルトでは、設定サブツリー (cn=config) のみが除外されます。別の方法では、PAM PTA プラグインは pamIncludeSuffix
属性の接尾辞に適用することもできます。これらの属性はいずれも多値で構成されます。
include 属性が設定されている場合、他の接尾辞はすべて自動的に除外されます。同様に、除外属性が設定されている場合、他のすべての接尾辞は自動的に含まれます。
pamExcludeSuffix: cn=config pamExcludeSuffix: o=NetscapeRoot
pamIncludeSuffix
を使用すると、指定した接尾辞のみが含まれ、その他は自動的に除外されます。この属性は多値であるため、接尾辞を明示的に一覧表示することで、PAM 評価に複数の接尾辞を追加できます。
pamIncludeSuffix: ou=Engineering,dc=example,dc=com pamIncludeSuffix: ou=QE,dc=example,dc=com
pamMissingSuffix
属性は、指定された接尾辞 (include または exclude) が存在しない場合に失敗を処理する方法をサーバーに指示します。IGNORE に設定すると、接尾辞が存在しない場合は、プラグインはその接尾辞を省略し、次の試行を試みます。
pamMissingSuffix: IGNORE pamIncludeSuffix: ou=Engineering,dc=example,dc=com pamIncludeSuffix: ou=Not Real,dc=example,dc=com
19.14.1.2. 異なるエントリーへの異なる PAM パススルー認証設定の適用
デフォルトでは、PAM パススルー認証ポリシーは指定の接尾辞内のすべてのエントリーに適用されます。ただし、
pamFilter
属性で LDAP フィルターを指定することができます。これは、PAM パススルー認証ポリシーを適用する接尾辞内の特定のエントリーを識別します。
これは、複数の PAM パススルー認証ポリシーを使用して、異なる PAM 設定やマッピング方法を異なるユーザータイプに適用する場合に便利です。
19.14.1.3. PAM PTA マッピングの設定
LDAP アイデンティティーを PAM アイデンティティーに接続する方法が必要です。最初に定義するのは、エントリーのマッピングに使用する 方法 です。DN、RDN、および ENTRY の 3 つのオプションがあります。ENTRY はエントリーでユーザー定義の属性を使用します。
複数のマッピング方法を、スペースで区切って順番に並べて指定することができます。プラグインは、認証が成功するまで、またはリストの最後に到達するまで、一覧表示される順序で各マッピングメソッドの使用を試行します。
例えば、このマッピング方法では、まず RDN メソッドをマッピングし、そのメソッドの順に ENTRY、次に DN がマッピングされます。
pamIDMapMethod: RDN ENTRY DN
異なるマッピングメソッドが、表19.6「PAM 認証のマッピングメソッド」に一覧表示されます。
注記
Directory Server ユーザーアカウントは、ENTRY マッピング方法を使用してのみ検証されます。RDN または DN では、アカウントが非アクティブの Directory Server ユーザーでも、サーバーに正常にバインドされます。
マッピング | 説明 |
---|---|
RDN | このメソッドは、バインド DN の左端にある RDN から値を使用します。このメソッドのマッピングは、Directory Server で定義されます。指定がない場合は、これがデフォルトのマッピングメソッドになります。 |
ENTRY | このメソッドは、バインド DN エントリーのユーザー定義の属性から PAM アイデンティティーの値をプルします。identity 属性は pamIDAttr 属性で定義されます。例: pamIDAttr: customPamUid |
DN | このメソッドは、バインド DN からの完全な識別名を使用します。このメソッドのマッピングは、Directory Server で定義されます。 |
19.14.1.4. 汎用 PAM PTA 設定の設定
PAM 認証には、一般的な 3 つの設定を設定できます。
- PAM (pamService) に送信するサービス名。これは、
/etc/pam.d
で使用する設定ファイルの名前です。 - セキュアな接続 (pamSecure) を必要とするかどうか。
- PAM 認証に失敗した場合の LDAP 認証にフォールバックするかどうか (pamFallback)
pamFallback: false pamSecure: false pamService: ldapserver