ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Unified Directory管理者ガイド
11g リリース2 (11.1.2)
B72794-04
  目次へ移動
目次

前
 
次
 

24 プロキシ/データ・ソース間のセキュリティ構成

プロキシとリモートLDAPサーバーの間のセキュリティ構成は、次の方法で構成できます:

セキュリティ管理のために、ネットワーク・グループを有効にして着信クライアント接続を分類することができます。ネットワーク・グループを使用すると、接続の分類に基づいて実行可能な操作を制限できます。この機能を使用して、たとえば指定したIPアドレスから接続するクライアントに対してのみアクセスを制限することができます。詳細は、第17.1.6項「dsconfigを使用したネットワーク・グループの構成」を参照してください。

プロキシとリモートLDAPサーバーの間でのセキュアなクライアント認証のために、各リモートLDAPサーバーのトラスト・ストアにプロキシの証明書をインポートする必要があります。この場合は、キーストアを手動で構成する必要があります。詳細は、第23.2項「キー・マネージャ・プロバイダの構成」を参照してください。

プロキシのセキュリティは、バックエンドACIをバイパスしません。

この章では、次のトピックを取り扱います:

24.1 プロキシによるセキュアな接続の管理

プロキシは、クライアントとのセキュリティとディレクトリ・サーバーとのセキュリティを管理し、SSLとStartTLSの両方をサポートします。

セキュリティを構成する際には、プロキシがリモートLDAPサーバーにどのように接続するかを指定する必要があります。それには、プロキシによるSSLの使用について、alwaysneverまたはuserを指定します。alwaysを指定すると、クライアントがどのような方法でプロキシに接続するかに関係なく、リモートLDAPサーバーとの接続は常にSSLを使用して保護されます。neverを指定すると、クライアントがセキュアな方法でプロキシに接続するかどうかに関係なく、プロキシとリモートLDAPディレクトリ・サーバーとの接続は保護されなくなります。userを指定すると、プロキシとリモートLDAPディレクトリ・サーバーの間のセキュリティが、クライアントとプロキシの間のセキュリティと同じになります。たとえば、クライアントがSSLを使用して接続している場合は、リモートLDAPサーバーへの接続でもSSLが使用されます。例外として、クライアントがStartTLSを使用して接続している場合は、プロキシからリモートLDAPサーバーへの接続にSSLが使用されます。


注意:

プロキシで使用するユーザー権限の変更をリモート・サーバーにバインドして反映させるには、リモート・サーバーのmaintain-authenticated-usersフラグをtrueに設定する必要があります。デフォルトでは、falseに設定されています。

決定済のauthDNによってバインドされるオープン接続の場合、import-ldifコマンドを使用してdn: authDNを持つエントリをインポートしても、接続が確立済のauthDNのプロパティ(アクセス権や特権など)は変更されません。import-ldifの結果によって指定されたauthDNの新しいプロパティは、authDNの新しいバインドのみに適用されます。このシナリオでは、maintain-authenticated-users:trueの設定は機能しません。次に例を示します。

たとえば、プロキシのシナリオでリモートLDAPサーバーのバインド・モードがuse-specific-idに設定されており、remote-ldap-server-bind-dncn=my_proxy_manager,dc=comの場合、プロキシではauthDN='cn=my_proxy_manager,dc=com'でバインドしたリモートLDAPサーバーとのオープン接続のプールは維持されます。この場合、リモートLDAPサーバーに格納されているユーザー・エントリcn=my_proxy_manager,dc=compassword-reset権限がない場合、プロキシ・サーバーに到達したパスワード変更操作は、権限の不足により失敗します。このため、LDIFファイルをインポートして必要なpassword-reset権限をcn=my_proxy_manager,dc=comユーザー・エントリに追加することで、リモートLDAPサーバーのデータをリロードすることが必要になる場合があります。ただし、この場合も、オープン接続が設定済の場合には新しい権限は考慮されません。


詳細は、「セキュアな接続のモード」を参照してください。

24.2 セキュアな接続のモード

プロキシは、リモートLDAPサーバーへの接続を次の3つのSSLセキュリティ・モードで処理します:

これらの設定は、dsconfig --advancedコマンドを使用して表示および編集できます。メイン・メニューから「拡張」を選択します。

remote-ldap-server-ssl-policyプロパティは、3つのSSLセキュリティ・モードを管理します。

remote-ldap-server-ssl-policyプロパティをalwaysまたはuserに設定した場合は、プロキシがリモートLDAPサーバーを信頼する必要があります。そのためには、各リモートLDAPサーバーの証明書を手動でプロキシのトラスト・ストアにインポートする必要があります。

24.2.1 alwaysセキュア・モード

remote-ldap-server-ssl-policyプロパティをalwaysに設定すると、クライアントがどのような方法でプロキシに接続するかに関係なく、プロキシからリモートLDAPサーバーへの接続はすべて完全にセキュアなSSL接続となります。

このモードでは、プール・サイズは1つのタイプの接続プール、すなわちセキュアなLDAPS接続を参照します。

alwaysセキュア・モードでは、各リモートLDAPサーバーの証明書をプロキシのトラスト・ストアにインポートする必要があります。Oracle Unified DirectoryサーバーではないバックエンドLDAPサーバーが多数存在していて、インストール時に証明書が管理されていなかった場合、プロキシのトラスト・ストアへ証明書をインポートすることが制約になる可能性があります。テスト環境の場合は、ssl-trust-allパラメータを使用してこのプロセスを迅速化できます。このパラメータは、すべてのリモートLDAPサーバーを信頼することをプロキシにリクエストします。

24.2.2 neverセキュア・モード

remote-ldap-server-ssl-policyプロパティをneverに設定すると、プロキシからリモートLDAPサーバーへの接続はいっさいセキュアなSSL接続にならなくなります。

このモードでは、リモートLDAPサーバーのプロキシによる監視接続は決してセキュアになりません。

このモードでは、プール・サイズは1つのタイプの接続プール、すなわち非保護LDAP接続を参照します。

24.2.3 userセキュア・モード

remote-ldap-server-ssl-policyプロパティをuserに設定すると、プロキシからリモートLDAPサーバーへの接続がセキュアになるかどうかは、クライアントがどのような方法でプロキシに接続するかに関係なく、クライアントからプロキシへの着信リクエストによって決まります。

着信クライアント・リクエストがセキュアな場合、それがSSLであってもStartTLSであっても、プロキシからリモートLDAPサーバーへの接続はセキュアなSSL接続になります。

着信クライアント・リクエストがセキュアでない場合、プロキシからリモートLDAPサーバーへの接続はセキュアなSSL接続になりません。

このモードでは、プロキシとリモートLDAPサーバーの間の監視接続は決してセキュアになりません。

2つの接続プールが作成されます。1つはセキュアで、もう1つは非保護です。図24-1を参照してください。左のシナリオでは、クライアントが非保護接続を使用してプロキシに接続し、プロキシからリモートLDAPサーバーまでは非保護の接続プールが使用されます。右のシナリオでは、クライアントがセキュアな接続(SSLとStartTLSのどちらでも)を使用してプロキシに接続し、プロキシからリモートLDAPサーバーまではセキュアなSSL接続プールが使用されます。

図24-1 userセキュア・モードでの接続

図24-1の説明が続きます
「図24-1 userセキュア・モードでの接続」の説明

userモードでは、各リモートLDAPサーバーの証明書をプロキシのトラスト・ストアにインポートする必要があります。Oracle Unified DirectoryサーバーではないリモートLDAPサーバーが多数存在していて、インストール時に証明書が管理されていなかった場合、プロキシのトラスト・ストアへ証明書をインポートすることが制約になる可能性があります。テスト環境では、ssl-trust-allパラメータを使用してこのプロセスを迅速化できます。このパラメータは、すべてのリモートLDAPサーバーを信頼することをプロキシにリクエストします。

remote-ldap-server-ssl-policyプロパティがuserに設定されている場合、プール・サイズは2つのタイプの接続プール、すなわち非保護のLDAP接続とセキュアなLDAPS接続を参照します。たとえば、図24-2のようにpool-initial-sizeで接続数が5に設定された場合、LDAP拡張が初期化されるときに、5個のLDAP接続からなるプールが1つと5個のLDAPS接続からなるプールが1つ(つまり合計10個の接続)が存在することになります。この初期化の後、各プールは各自について設定されたパラメータに基づいて、それぞれ個別に進化していきます。


注意:

デフォルトでは、pool-initial-sizeは10(接続数)に設定されています。


図24-2 複数の接続プール

図24-2の説明が続きます
「図24-2 複数の接続プール」の説明

24.3 プロキシとデータ・ソースの間でのdsconfigを使用したセキュリティ構成

dsconfigツールは、証明書認証によって保護された接続を通じてサーバーにアクセスします。dsconfigを非対話モードで実行する場合(dsconfig -nを使用して)、トラスト・ストア・パラメータの指定は、そのコマンドをローカルとリモートのどちらで実行するかによって決まります。コマンドをローカルまたはリモートで実行する方法の詳細は、dsconfigコマンドの概要」を参照してください。

24.3.1 dsconfigを使用してプロキシとディレクトリ・サーバーの間のセキュリティを構成する手順

このタスクでは、リモートLDAPサーバーへの接続のセキュリティを構成するために必要な主要な手順について説明します。プロセスが、プロキシとクライアントの間のセキュリティを構成する場合のプロセスに似ている箇所では、関連する手順への参照が示されています。

  1. プロキシからリモートLDAPサーバーへクライアント認証を渡す必要がない場合は、ステップ2に進んでください。

    プロキシからリモートLDAPサーバーへクライアント認証を渡す必要がある場合は、次のサブステップを実行してください:

    1. リモートLDAPサーバー接続のキーストアを構成します。

      これを行うには、Javaコマンドkeytoolを使用してプロキシ・サーバー上に証明書を生成します。キーストアは手動で構成する必要があります。詳細は、「キー・マネージャ・プロバイダの構成」を参照してください。

      証明書に自己署名するか、外部の認証局による署名を取得します。詳細は、「キー・マネージャ・プロバイダの構成」を参照してください。

    2. リモートLDAPサーバー接続のキーストアについて、プロキシ上のキー・マネージャ・プロバイダを構成します。

      詳細は、「キー・マネージャ・プロバイダの構成」を参照してください。このキー・マネージャ・プロバイダは、クライアントへのセキュアな接続を処理するために使用するキー・マネージャ・プロバイダとは別にすることができます。

    3. リモートLDAPサーバーがクライアント認証を必要とする場合は、プロキシの証明書を各リモートLDAPサーバーのキーストアにインポートする必要があります。

      Oracle Unified Directory上での証明書のインポートとエクスポートの方法は、「キー・マネージャ・プロバイダの構成」を参照してください。

  2. プロキシがリモートLDAPサーバーとの間にセキュアな接続を確立できるようにするために、トラスト・ストアを構成します。

    セキュアな接続を必要とするすべてのリモートLDAPサーバーについて、各サーバーの証明書をプロキシのトラスト・ストアにインポートする必要があります。これらのリモートLDAPサーバーの証明書はすべて、単一のプロキシ・トラスト・ストアにインポートすることも、複数のプロキシ・トラスト・ストアに分散させることもできます。プロキシのトラスト・ストアは、インポートするリモートLDAPサーバーの証明書の数だけ使用できます。

    リモートLDAPデータ・ソースへのセキュアな接続をターゲットとするLDAPプロキシ拡張は、その構成の中で適切なトラスト・ストア・マネージャを参照する必要があります。LDAPプロキシ拡張はこれにより、インポートされたリモートLDAPサーバーの証明書にアクセスして、セキュアな接続を承認できるようになります。

  3. 各トラスト・ストアは、プロキシ信頼マネージャ・プロバイダを必要とします。

    プロキシ信頼マネージャ・プロバイダのリストを表示するには、dsconfig list-trust-manager-providersコマンドを使用します。例:

    $ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
    list-trust-manager-providers
    

    プロキシ信頼マネージャ・プロバイダを作成するには、dsconfig create-trust-manager-providerコマンドを使用します。例:

    $ dsconfig -h localhost -p 4444 -D "cn=Directory Manager"  -j pwd-file -X -n \
    create-trust-manager-provider \
    --provider-name Backend\ Servers \
    --type file-based --set enabled:true \
    --set trust-store-file:/localhost/config/backend-servers-truststore \
    --set trust-store-type:JKS \
    --set trust-store-pin-file:/installPath/config/backend-servers-truststore.pin
    
  4. リモートLDAPサーバーの証明書をプロキシのトラスト・ストアにインポートします。

24.3.2 LDAP拡張の構成可能なセキュリティ関連プロパティ

dsconfigを使用してリモートLDAPサーバーへの接続を管理するときに、LDAP拡張のセキュリティ接続プロパティのいくつかを構成できます。LDAP拡張の管理の詳細は、「リモートLDAPサーバーとの通信の構成」を参照してください。直接的または間接的にセキュリティに関連する構成可能なプロパティには、次のものが含まれます:

remote-ldap-server-ssl-policy

この重要な値は、プロキシとリモートLDAPサーバーの間の接続の全体的なセキュリティ・モードを制御します。その使用法については、「セキュアな接続のモード」で説明しています。

pool-increment

remote-ldap-server-ssl-policyプロパティをuserに設定すると、2つの接続プールが作成され、各プールのサイズの増分変更がpool-incrementに設定されます。このプロパティの詳細は、「LDAPサーバー拡張の拡張プロパティを変更するには」を参照してください。

pool-initial-size

remote-ldap-server-ssl-policyプロパティがuserに設定されると、2つの接続プールが作成され、各プールの初期サイズ、つまり最小サイズがpool-initial-sizeに設定されます。したがってこの場合は、pool-initial-sizeで指定された合計接続数の2倍の数の接続が最初に存在することになります。詳細は、「LDAPサーバー拡張の拡張プロパティを変更するには」を参照してください。

pool-max-size

remote-ldap-server-ssl-policyプロパティがuserに設定されると、2つの接続プールが作成され、各プールの最大サイズがpool-max-sizeに設定されます。

デフォルト値は接続数1000です。このプロパティの詳細は、「LDAPサーバー拡張の拡張プロパティを変更するには」を参照してください。

remote-ldap-server-ssl-port

プロキシからリモートLDAPサーバーへのSSL接続のポート番号です。

ssl-client-alias

クライアントの認証のためにキーストアが作成されるときに、複数の鍵がそのキーストアに保存されることがあります。このプロパティは、どの鍵を使用するかを指定するために使用します。キーストアの詳細は、「SSLの迅速な起動と実行」を参照してください。また、「キー・マネージャ・プロバイダの構成」も参照してください。

ssl-key-manager-provider

LDAP拡張のために使用するキー・マネージャ・プロバイダを指定します。キー・マネージャ・プロバイダは必須ではなく、リモートLDAPサーバーがクライアント認証用に構成されている場合に使用できます。参照先のキー・マネージャ・プロバイダは、有効になっている必要があります。キー・マネージャ・プロバイダの詳細は、「キー・マネージャ・プロバイダの構成」を参照してください。

ssl-trust-all

このパラメータをtrueに設定すると、すべてのリモートLDAPサーバーが信頼されます。デフォルト値はfalseです。この値をtrueに設定すると、リモートLDAPサーバーから証明書をインポートする必要はなくなりますが、接続がセキュアでなくなります。

インタラクティブなdsconfig --advancedコマンドは、使用できる信頼マネージャ・プロバイダとしてブラインド信頼を提供しますが、ブラインド信頼マネージャ・プロバイダはプロキシ・サーバーについてはサポートされていません。証明書をインポートする必要をなくすには、かわりにssl-trust-allパラメータをtrueに設定します。その結果、デプロイメントがセキュアでなくなるため、この設定は本番環境ではお薦めできません。テスト用にのみ使用してください。

remote-ldap-server-ssl-policyneverに設定すると、ssl-trust-allパラメータの値は無意味になります。この場合、プロキシとの間のすべての接続がセキュアでなくなります(暗号化されません)。remote-ldap-server-ssl-policyの詳細は、「セキュアな接続のモード」を参照してください。

ssl-trust-manager-provider

LDAP拡張のためにどの信頼マネージャ・プロバイダを使用するかを指定します。信頼マネージャ・プロバイダは、ssl-trust-allパラメータがtrueに設定されていないかぎり必須です。参照先の信頼マネージャ・プロバイダは、有効になっている必要があります。