1.7. 証明書ベースの認証の設定


Directory Server は、LDAP クライアントの証明書ベースの認証と、レプリケーショントポロジーなどのサーバー間接続をサポートしています。

設定に応じて、クライアントは証明書を使用して認証できるか、認証する必要があります。サーバーは、証明書の subject フィールドの属性に基づいて証明書を検証した後、ディレクトリー内でユーザーを検索します。検索でユーザーエントリーを 1 つだけ返すと、Directory Server はこのユーザーを使用してすべての操作を行います。必要に応じて、認証に使用される証明書が、ユーザーエントリーの userCertificate 属性に保存されている Distinguished Encoding Rules (DER) 形式の証明書と一致するように設定できます。

証明書ベースの認証を使用する利点:

  • 効率の向上: 証明書データベースのパスワードを使用して認証し、その後のすべてのバインド操作または認証操作でその証明書を使用する方が、バインド識別名 (DN) とパスワードを繰り返し提供するよりも効率的です。
  • セキュリティーの向上: 証明書ベースの認証は、証明書ベースの認証では公開鍵の暗号化が使用されるため、証明書以外のバインド操作よりも安全です。攻撃者は、ネットワーク全体でバインド認証情報を傍受できません。証明書やデバイスが失われた場合は、PIN がなければ役に立たないため、フィッシング攻撃などのサードパーティーの干渉の影響を受けません。

1.7.1. 証明書ベースの認証の設定

前提条件

  • Directory Server で TLS 暗号化を有効にしている。
  • ネットワークセキュリティーサービス (NSS) データベースで認証局 (CA) 証明書の CT フラグを設定します。

手順

  1. /etc/dirsrv/slapd-<instance_name>/certmap.conf ファイルを作成し、証明書から Directory Server ユーザーへ情報をマッピングします。

    certmap default         default
    default:DNComps         dc
    default:FilterComps     mail,cn
    default:VerifyCert      on
    
    certmap example         cn=Example CA
    example:DNComps
    Copy to Clipboard Toggle word wrap

    この設定では、cn=Example CA によって発行された証明書の場合、この発行者の DNComps パラメーターが空に設定されているため、Directory Server は証明書のサブジェクトからベース DN を生成しません。さらに、FilterCompsVerifyCert の設定は、デフォルトのエントリーから継承されます。

    cn=Example CA とは異なる発行者 DN を持つ証明書は、デフォルトエントリーの設定を使用し、証明書のサブジェクトの cn 属性に基づいてベース DN を生成します。これにより、ディレクトリー全体を検索せずに、Directory Server が特定の DN で検索を開始できます。

    すべての証明書について、Directory Server は、証明書のサブジェクトの mail 属性および cn 属性を使用して検索フィルターを生成します。ただし、件名に mail 属性が存在しない場合、Directory Server は自動的に証明書の e 属性の値を件名に使用します。

  2. 証明書ベースの認証を有効にします。たとえば、証明書ベースの認証をオプションとして設定するには、次のように入力します。

    # dsconf <instance_name> security set --tls-client-auth="allowed"
    Copy to Clipboard Toggle word wrap

    --tls-client-auth=required オプションを使用して、証明書ベースの認証を必須として設定します。

  3. オプション: 証明書ベースの認証を必須として設定した場合は、nsslapd-require-secure-binds パラメーターを有効にします。

    # dsconf <instance_name> config replace nsslapd-require-secure-binds=on
    Copy to Clipboard Toggle word wrap

    この設定により、ユーザーは暗号化されていない接続を使用して証明書ベースの認証をバイパスできなくなります。

  4. オプション: Directory Server がバインド要求の認証情報の代わりに証明書の ID を使用する必要がある場合は、EXTERNAL 簡易認証およびセキュリティー層 (SASL) メカニズムを使用するように Directory Server を設定します。

    # dsconf <instance_name> config replace nsslapd-force-sasl-external=on
    Copy to Clipboard Toggle word wrap

    この設定では、Directory Server は証明書内の ID 以外のバインド方法を無視します。

  5. インスタンスを再起動します。

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap

次のステップ:

  • 認証証明書がユーザーの userCertificate 属性に格納されている証明書と一致する必要があるように Directory Server を設定した場合は、証明書をユーザーエントリーに追加します。

    詳細は、「ユーザーへの証明書の追加」 を参照してください。

1.7.2. ユーザーへの証明書の追加

証明書ベースの認証を設定すると、認証に使用される証明書がユーザーの userCertificate バイナリー属性に格納されている証明書と一致する必要があるようにサーバーを設定できます。この機能を有効にした場合は、影響を受けるユーザーの証明書をディレクトリーエントリーに追加する必要があります。

前提条件

  • Directory Server で証明書ベースの認証を有効にしている。
  • サーバーによって信頼されている認証局 (CA) によって発行されたクライアント証明書がある。
  • クライアント証明書は識別符号化規則 (DER) 形式である。
  • クライアント証明書は、サーバーの /etc/dirsrv/slapd-<instance_name>/certmap.conf で設定された要件を満たしている。

手順

  1. 証明書が DER 形式でない場合は、変換します。たとえば、証明書を Privacy Enhanced Mail (PEM) から DER に変換するには、次のように入力します。

    # openssl x509 -in /home/user_name/certificate.pem -out /home/user_name/certificate.der -outform DER
    Copy to Clipboard Toggle word wrap
  2. ユーザーの userCertificate 属性に証明書を追加します。

    # ldapmodify -D "cn=Directory Manager" -W -H ldaps://server.example.com -x
    
    dn: uid=user_name,ou=People,dc=example,dc=com
    changetype: modify
    add: userCertificate
    userCertificate:< file:///home/user_name/example.der
    Copy to Clipboard Toggle word wrap

検証

  1. 証明書ベースの認証を使用してユーザーとして認証します。

    1. CA 証明書、ユーザーキー、およびユーザー証明書の対応するパスに、以下の環境変数を設定します。

      LDAPTLS_CACERT=/home/user_name/CA.crt
      LDAPTLS_KEY=/home/user_name/user.key
      LDAPTLS_CERT=/home/user_name/user.der
      Copy to Clipboard Toggle word wrap

      または、現在のユーザーの ~/.ldaprc ファイルで TLS_CACERTTLS_KEY、および TLS_CERT パラメーターを設定します。

    2. サーバーに接続します。

      # ldapwhoami -H ldaps://server.example.com -Y EXTERNAL
      dn: uid=example,ou=people,dc=example,dc=com
      Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat