9.8. 証明書ベースのクライアント認証の使用
Directory Server は、LDAP クライアントの証明書ベースの認証と、レプリケーションなどのサーバー間接続をサポートします。
証明書ベースの認証を有効にしている場合は、設定によっては、クライアントが証明書を使用して認証したり、認証する必要があります。証明書を検証した後に、サーバーは証明書の subject フィールドの属性に基づいて、ディレクトリー内のユーザーを検索します。検索でユーザーエントリーを 1 つだけ返すと、Directory Server はこのユーザーを使用してすべての操作を行います。必要に応じて、認証に使用される証明書を、ユーザーの
userCertificate
属性に保存されている Distinguished Encoding Rules(DER)形式の証明書と一致するように設定できます。
証明書ベースの認証を使用する利点:
- 効率が改善されました。証明書データベースのパスワードに一度要求されたアプリケーションを使用し、その証明書を後続のバインドまたは認証操作に使用すると、バインド DN およびパスワードを継続的に提供するよりも効率的です。
- セキュリティーが改善されました。証明書ベースの認証は、証明書ベースの認証では公開鍵の暗号化が使用されるため、証明書以外のバインド操作よりも安全です。バインド認証情報はネットワーク全体で傍受することはできません。証明書やデバイスが失われた場合は、PIN なしで使用しないため、フィッシング攻撃などのサードパーティーの干渉の影響を受けません。
9.8.1. 証明書ベースの認証の設定
証明書ベースの認証を有効にするには、以下を行います。
- 暗号化された接続を有効にします。詳細は「TLS の有効化」を参照してください。
- CA 証明書をインストールし、クライアントとサーバーの接続の信頼オプションを設定します。「CA 証明書のインストール」を参照してください。
- 必要に応じて、クライアントおよびサーバーの CT,, 信頼オプションが CA 証明書に設定されていることを確認します。
# certutil -d /etc/dirsrv/slapd-instance_name/ -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI Example CA CT,,
/etc/dirsrv/slapd-instance_name/certmap.conf
ファイルを作成し、証明書から Directory Server ユーザーへ情報をマッピングします。以下に例を示します。certmap default default default:DNComps dc default:FilterComps mail,cn default:VerifyCert on certmap example o=Example Inc.,c=US example:DNComps
これは、この発行者にはDNComps
パラメーターが空に設定されているため、o=Example Inc.,c=US 発行者識別名 (DN) セットを持つ証明書を使用するユーザーを認証するため、Directory Server が証明書のサブジェクトからベース DN を生成しないように設定されています。また、FilterComps
およびVerifyCert
の設定も、デフォルトのエントリーから継承されます。指定の証明書とは異なる発行者 DN を持つ証明書は default エントリーの設定を使用し、証明書のサブジェクトのcn
属性に基づいてベース DN を生成します。これにより、ディレクトリー全体を検索せずに、Directory Server が特定の DN で検索を開始できます。すべての証明書について、Directory Server は、証明書のサブジェクトのmail
属性およびcn
属性を使用して検索フィルターを生成します。ただし、mail
がサブジェクトに存在しない場合は、Directory Server はサブジェクトで証明書のe
属性の値を自動的に使用します。利用可能なパラメーターの詳細と説明は、Red 『Hat Directory Server の設定、コマンド、およびファイルリファレンス のcertmap.conf
ファイルの説明を参照してください』。- クライアント認証を有効にします。たとえば、クライアント認証を任意に設定するには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x -Z dn: cn=encryption,cn=config changetype: modify replace: nsSSLClientAuth nsSSLClientAuth: allowed
または、nsSSLClientAuth
パラメーターを required に設定して、クライアントが認証に使用する必要のある証明書を設定します。重要Directory Server コンソールは、クライアント認証に対応していません。nsSSLClientAuth
を required に設定すると、コンソールを使用してインスタンスを管理することはできません。 /etc/dirsrv/slapd-instance_name/certmap.conf
ファイルで alias_name:VerifyCert on を設定して、認証証明書がユーザーのuserCertificate
属性に保存されている証明書と一致する必要がある場合は、その証明書をユーザーエントリーに追加します。「ユーザーへの証明書の追加」を参照してください。