8.3. Identity サービスにセキュアな LDAP 通信の設定

以下のいずれかの方法で、Identity サービス (keystone) に LDAP を設定してください。

方法 1

CA 信頼が PEM ファイルを使用して LDAP レベルで設定されている場合は、この方法を使用してください。CA 証明書ファイルの場所は手動で指定します。以下の手順では、Identity サービスだけでなく、OpenLDAP ライブラリーを使用する全アプリケーションの LDAP 通信が保護されます。

  1. CA 証明書チェーンが含まれているファイルを PEM 形式で /etc/openldap/certs ディレクトリーにコピーします。
  2. /etc/openldap/ldap.conf を編集して以下のディレクティブを追加します。[CA_FILE] は CA 証明書ファイルの場所と名前に置き換えます。

    TLS_CACERT /etc/openldap/certs/[CA_FILE]
  3. horizon コンテナーを再起動します。

    # systemctl restart tripleo_horizon

方法 2

CA 信頼が Network Security Services (NSS) データベースを介して LDAP ライブラリーレベルで設定されている場合は、この方法を使用します。certutil コマンドを使用して、OpenLDAP ライブラリーが使用する NSS 証明書データベースに CA 証明書をインポートし、信頼します。以下の手順では、Identity サービスだけでなく、OpenLDAP ライブラリーを使用する全アプリケーションの LDAP 通信が保護されます。

  1. 証明書をインポートして信頼します。[CA_FILE] は CA 証明書ファイルの場所と名前に置き換えます。

    # certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]
    # certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]
  2. CA 証明書が正しくインポートされていることを確認します。

    # certutil -d /etc/openldap/certs -L

    CA 証明書がリストされ、信頼の属性が CT,, に設定されます。

  3. horizon コンテナーを再起動します。

    # systemctl restart tripleo_horizon

方法 3

CA 信頼が PEM ファイルを使用して Keystone レベルで設定されている場合は、この方法を使用します。このメソッドでは、Identity サービスと LDAP サーバー間の通信を保護するために Identity サービスに TLS を設定します。

ただし、上記の 2 つのメソッドとは異なり、このメソッドでは、Identity サービスの LDAP 通信のみが保護され、OpenLDAP ライブラリーを使用する他のアプリケーションの LDAP 通信は保護されません。以下の手順では、openstack-config コマンドを使用して、/var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ファイルの値を編集します。

  1. TLS を有効化します。

    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap use_tls True
  2. 証明書の場所を指定します。[CA_FILE] は CA 証明書ファイルの名前に置き換えます。

    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_cacertfile [CA_FILE]
  3. LDAP サーバーから受信した TLS セッションに対して実行するクライアント証明書チェックを指定します。[CERT_BEHAVIOR] は、以下にあげる動作のいずれか 1 つに置き換えてください。

    demand
    LDAP サーバーにより証明書が常に要求されます。証明書が提供されなかった場合、または提供された証明書が既存の認証局ファイルに対して検証できなかった場合には、セッションは終了します。
    allow
    LDAP サーバーにより証明書が常に要求されます。証明書が提供されなくてもセッションは通常どおり続行されます。証明書が提供されたにもかかわらず、既存の認証局ファイルに対して検証できなかった場合、その証明書は無視され、セッションは通常どおり続行されます。
    never
    証明書は一切要求されません。
    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_req_cert [CERT_BEHAVIOR]
  4. keystone と horizon のコンテナーを再起動します。

    # systemctl restart tripleo_keystone
    # systemctl restart tripleo_horizon