19.14.3. Active Directory をバックエンドとして PAM パススルー認証の使用
PAM パススルー認証では、Directory Server から PAM サービスに認証情報を転送します。1 つのオプションとして、Directory Server 専用の PAM モジュールを設定できます。また、インフラストラクチャーによっては、より再現性が高く便利な方法として、SSSD (System Security Services Daemon) を使用して PAM を設定する方法もあります。SSSD はさまざまなアイデンティティーストアを使用できるため、Active Directory などの認証情報を提供するのに多くの異なるサーバーやサービスを使用できます。
SSSD を介してパススルー認証を使用することはサービスのデイジーチェーンです。PAM PTA プラグインは通常通りに設定されます。使用する特定の PAM サービスファイルを指します。このサービスファイルは SSSD によって管理され、SSSD は複数のプロバイダーであっても必要なアイデンティティープロバイダーに接続するように設定されます。
図19.4 SSSD による PAM パススルー認証
Active Directory で PAM パススルー認証を設定するには、以下を行います。
- Active Directory サーバーを ID プロバイダーの 1 つとして使用するように SSSD を設定します。この設定は、『Windows 統合ガイド』 の 『SSSD で Active Directory を ID プロバイダーとして使用』 セクションで説明しています。
- PAM パススルー認証プラグインを有効にします。これはデフォルトで無効にされています。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=PAM Pass-Through Auth Plugin,cn=plugins,cn=config changetype: modify replace: nsslapd-pluginEnabled nsslapd-pluginEnabled: on
- PAM パススルー認証プラグイン設定エントリーを作成します。
# ldapmodify
-a
-D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=AD PAM PTA Config,cn=PAM Pass-Through Auth Plugin,cn=plugins,cn=config cn: AD PAM PTA Config pamService
属性を設定して、SSSD が管理する PAM 設定ファイルを参照します。デフォルトでは、これは/etc/pam.d/system-auth
です。pamService: system-auth
重要pam_fprintd.so モジュールは、PAM パススルー認証プラグイン設定のpamService
属性によって参照される設定ファイルにすることはできません。PAM の fprintd モジュールを使用すると、Directory Server は最大ファイル記述子制限に到達し、Directory Server プロセスが中止する可能性があります。- ID マップメソッドおよび属性を設定します。Directory Server 環境に応じて、これを行う方法は複数あります。最も簡単な方法は、RDN マップメソッドを使用して、
uid
属性(または正しい命名属性)を使用して Directory Server ユーザーを Active Directory ユーザー(Active Directory はアイデンティティープロバイダー)に戻します。pamIDMapMethod: RDN
同様に、samAccountName
属性を使用して ENTRY マップメソッドで実行できます。Directory Server のユーザーアカウントが、Active Directory のユーザーアカウントのuid
値と一致するsamAccountName
で作成されると、マッピングは成功します。pamIDMapMethod: ENTRY pamIDAttr: samAccountName
Windows 同期が設定されている場合、ENTRY メソッドはntUserDomainId
属性で使用できます。Directory Server および Active Directory ユーザーアカウントは、その属性値に基づいてすでに同期されているため、PAM マッピングは成功します。pamIDMapMethod: ENTRY pamIDAttr: ntUserDomainId
- サーバーを再起動して、新しいプラグイン設定を読み込みます。
# systemctl restart dirsrv.target