この章では、プロキシとリモートLDAPサーバー間のセキュリティを構成する方法について説明します。
この章の構成は、次のとおりです。
プロキシとリモートLDAPサーバー間のセキュリティは次の方法で構成できます。
プロキシのインストール時にoud-proxy-setup GUIを使用して。詳細は、Oracle Unified DirectoryのインストールのGUIを使用したプロキシ・サーバーの設定に関する項を参照してください。
プロキシのインストール後に対話モードでdsconfigコマンドを使用して。dsconfigコマンドの使用方法の詳細は、第17.1項「dsconfigを使用したサーバー構成の管理」を参照してください。
セキュリティ管理のために、ネットワーク・グループを有効にして着信クライアント接続を分類することができます。ネットワーク・グループを使用すると、接続の分類に基づいて実行可能な操作を制限できます。この機能を使用して、たとえば指定したIPアドレスから接続するクライアントに対してのみアクセスを制限することができます。詳細は、第17.1.6項「dsconfigを使用したネットワーク・グループの構成」を参照してください。
プロキシとリモートLDAPサーバーの間でのセキュアなクライアント認証のために、各リモートLDAPサーバーのトラスト・ストアにプロキシの証明書をインポートする必要があります。この場合は、キーストアを手動で構成する必要があります。詳細は、第26.2項「キー・マネージャ・プロバイダの構成」を参照してください。
プロキシのセキュリティは、バックエンドACIをバイパスしません。
プロキシは、クライアントとのセキュリティとディレクトリ・サーバーとのセキュリティを管理し、SSLとStartTLSの両方をサポートします。
セキュリティを構成する際には、プロキシがリモートLDAPサーバーにどのように接続するかを指定する必要があります。それには、プロキシによるSSLの使用について、always、neverまたはuserを指定します。alwaysを指定すると、クライアントがどのような方法でプロキシに接続するかに関係なく、リモートLDAPサーバーとの接続は常にSSLを使用して保護されます。neverを指定すると、クライアントがセキュアな方法でプロキシに接続するかどうかに関係なく、プロキシとリモートLDAPディレクトリ・サーバーとの接続は保護されなくなります。userを指定すると、プロキシとリモートLDAPディレクトリ・サーバーの間のセキュリティが、クライアントとプロキシの間のセキュリティと同じになります。たとえば、クライアントがSSLを使用して接続している場合は、リモートLDAPサーバーへの接続でもSSLが使用されます。例外として、クライアントがStartTLSを使用して接続している場合は、プロキシからリモートLDAPサーバーへの接続にSSLが使用されます。
|
注意: プロキシで使用するユーザー権限の変更をリモート・サーバーにバインドして反映させるには、リモート・サーバーのmaintain-authenticated-usersフラグをtrueに設定する必要があります。デフォルトでは、falseに設定されています。
決定済の たとえば、プロキシのシナリオでリモートLDAPサーバーのバインド・モードが |
詳細は、第27.2項「セキュアな接続のモード」を参照してください。
プロキシは、リモートLDAPサーバーへの接続を次の3つのSSLセキュリティ・モードで処理します:
always
never
user
これらの設定は、dsconfig --advancedコマンドを使用して表示および編集できます。メイン・メニューから「拡張」を選択します。
remote-ldap-server-ssl-policyプロパティは、3つのSSLセキュリティ・モードを管理します。
remote-ldap-server-ssl-policyプロパティをalwaysまたはuserに設定した場合は、プロキシがリモートLDAPサーバーを信頼する必要があります。そのためには、各リモートLDAPサーバーの証明書を手動でプロキシのトラスト・ストアにインポートする必要があります。
alwaysセキュア・モードremote-ldap-server-ssl-policyプロパティをalwaysに設定すると、クライアントがどのような方法でプロキシに接続するかに関係なく、プロキシからリモートLDAPサーバーへの接続はすべて完全にセキュアなSSL接続となります。
このモードでは、プール・サイズは1つのタイプの接続プール、すなわちセキュアなLDAPS接続を参照します。
alwaysセキュア・モードでは、各リモートLDAPサーバーの証明書をプロキシのトラスト・ストアにインポートする必要があります。Oracle Unified DirectoryサーバーではないバックエンドLDAPサーバーが多数存在していて、インストール時に証明書が管理されていなかった場合、プロキシのトラスト・ストアへ証明書をインポートすることが制約になる可能性があります。テスト環境の場合は、ssl-trust-allパラメータを使用してこのプロセスを迅速化できます。このパラメータは、すべてのリモートLDAPサーバーを信頼することをプロキシにリクエストします。
neverセキュア・モードremote-ldap-server-ssl-policyプロパティをneverに設定すると、プロキシからリモートLDAPサーバーへの接続はいっさいセキュアなSSL接続にならなくなります。
このモードでは、リモートLDAPサーバーのプロキシによるモニタリング接続は決してセキュアになりません。
このモードでは、プール・サイズは1つのタイプの接続プール、すなわち非保護LDAP接続を参照します。
userセキュア・モードremote-ldap-server-ssl-policyプロパティをuserに設定すると、プロキシからリモートLDAPサーバーへの接続がセキュアになるかどうかは、クライアントがどのような方法でプロキシに接続するかに関係なく、クライアントからプロキシへの着信リクエストによって決まります。
着信クライアント・リクエストがセキュアな場合、それがSSLであってもStartTLSであっても、プロキシからリモートLDAPサーバーへの接続はセキュアなSSL接続になります。
着信クライアント・リクエストがセキュアでない場合、プロキシからリモートLDAPサーバーへの接続はセキュアなSSL接続になりません。
このモードでは、プロキシとリモートLDAPサーバーの間のモニタリング接続は決してセキュアになりません。
2つの接続プールが作成されます。1つはセキュアで、もう1つは非保護です。これは、図27-1に示されています。左のシナリオでは、クライアントが非保護接続を使用してプロキシに接続し、プロキシからリモートLDAPサーバーまでは非保護の接続プールが使用されます。右のシナリオでは、クライアントがセキュアな接続(SSLとStartTLSのどちらでも)を使用してプロキシに接続し、プロキシからリモートLDAPサーバーまではセキュアなSSL接続プールが使用されます。
userモードでは、各リモートLDAPサーバーの証明書をプロキシのトラスト・ストアにインポートする必要があります。Oracle Unified DirectoryサーバーではないリモートLDAPサーバーが多数存在していて、インストール時に証明書が管理されていなかった場合、プロキシのトラスト・ストアへ証明書をインポートすることが制約になる可能性があります。テスト環境では、ssl-trust-allパラメータを使用してこのプロセスを迅速化できます。このパラメータは、すべてのリモートLDAPサーバーを信頼することをプロキシにリクエストします。
remote-ldap-server-ssl-policyプロパティがuserに設定されている場合、プール・サイズは2つのタイプの接続プール、すなわち非保護のLDAP接続とセキュアなLDAPS接続を参照します。たとえば、図27-2のようにpool-initial-sizeで接続数が5に設定された場合、LDAP拡張が初期化されるときに、5個のLDAP接続からなるプールが1つと5個のLDAPS接続からなるプールが1つ(つまり合計10個の接続)が存在することになります。この初期化の後、各プールは各自について設定されたパラメータに基づいて、それぞれ個別に進化していきます。
|
注意: デフォルトでは、pool-initial-sizeは10(接続数)に設定されています。 |
dsconfigを使用したセキュリティ構成dsconfigツールは、証明書認証によって保護された接続を通じてサーバーにアクセスします。dsconfigを非対話モードで実行する場合(dsconfig -nを使用して)、トラスト・ストア・パラメータの指定は、そのコマンドをローカルとリモートのどちらで実行するかによって決まります。コマンドをローカルまたはリモートで実行する方法の詳細は、第17.1.1項「dsconfigコマンドの使用」を参照してください。
dsconfigを使用したプロキシとディレクトリ・サーバー間のセキュリティの構成このタスクでは、リモートLDAPサーバーへの接続のセキュリティを構成するために必要な主要なステップについて説明します。プロセスが、プロキシとクライアントの間のセキュリティを構成する場合のプロセスに似ている箇所では、関連する手順への参照が示されています。
プロキシからリモートLDAPサーバーへクライアント認証を渡す必要がない場合は、ステップ2に進んでください。
プロキシからリモートLDAPサーバーへクライアント認証を渡す必要がある場合は、次のサブステップを実行してください:
リモートLDAPサーバー接続のキーストアを構成します。
これを行うには、Javaコマンドkeytoolを使用してプロキシ・サーバー上に証明書を生成します。キーストアは手動で構成する必要があります。詳細は、第26.2項「キー・マネージャ・プロバイダの構成」を参照してください。
証明書に自己署名するか、外部の認証局による署名を取得します。詳細は、第26.2項「キー・マネージャ・プロバイダの構成」を参照してください。
リモートLDAPサーバー接続のキーストアについて、プロキシ上のキー・マネージャ・プロバイダを構成します。
詳細は、第26.2項「キー・マネージャ・プロバイダの構成」を参照してください。このキー・マネージャ・プロバイダは、クライアントへのセキュアな接続を処理するために使用するキー・マネージャ・プロバイダとは別にすることができます。
リモートLDAPサーバーがクライアント認証を必要とする場合は、プロキシの証明書を各リモートLDAPサーバーのキーストアにインポートする必要があります。
Oracle Unified Directory上での証明書のインポートとエクスポートの方法は、第26.2項「キー・マネージャ・プロバイダの構成」を参照してください。
プロキシがリモートLDAPサーバーとの間にセキュアな接続を確立できるようにするために、トラスト・ストアを構成します。
セキュアな接続を必要とするすべてのリモートLDAPサーバーについて、各サーバーの証明書をプロキシのトラスト・ストアにインポートする必要があります。これらのリモートLDAPサーバーの証明書はすべて、単一のプロキシ・トラスト・ストアにインポートすることも、複数のプロキシ・トラスト・ストアに分散させることもできます。プロキシのトラスト・ストアは、インポートするリモートLDAPサーバーの証明書の数だけ使用できます。
リモートLDAPデータ・ソースへのセキュアな接続をターゲットとするLDAPプロキシ拡張は、その構成の中で適切なトラスト・ストア・マネージャを参照する必要があります。LDAPプロキシ拡張はこの参照により、インポートされたリモートLDAPサーバーの証明書にアクセスして、セキュアな接続を承認できるようになります。
各トラスト・ストアは、プロキシ信頼マネージャ・プロバイダを必要とします。
プロキシ信頼マネージャ・プロバイダのリストを表示するには、dsconfig list-trust-manager-providersコマンドを使用します。例:
$dsconfig-hlocalhost-p4444-D"cn=Directory Manager" -j pwd-file-X-n\list-trust-manager-providers
プロキシ信頼マネージャ・プロバイダを作成するには、dsconfig create-trust-manager-providerコマンドを使用します。例:
$dsconfig-hlocalhost-p4444-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
リモートLDAPサーバーの証明書をプロキシのトラスト・ストアにインポートします。
dsconfigを使用してリモートLDAPサーバーへの接続を管理するときに、LDAP拡張のセキュリティ接続プロパティのいくつかを構成できます。LDAP拡張の管理の詳細は、第20.2項「リモートLDAPサーバーとの通信の構成」を参照してください。直接的または間接的にセキュリティに関連する構成可能なプロパティは、次のとおりです。
remote-ldap-server-ssl-policyこの重要な値は、プロキシとリモートLDAPサーバーの間の接続の全体的なセキュリティ・モードを制御します。その使用方法については、第27.2項「セキュアな接続のモード」で説明しています。
pool-incrementremote-ldap-server-ssl-policyプロパティをuserに設定すると、2つの接続プールが作成され、各プールのサイズの増分変更がpool-incrementに設定されます。このプロパティの詳細は、第20.2.1.5項「LDAPサーバー拡張のプロパティの変更」を参照してください。
pool-initial-sizeremote-ldap-server-ssl-policyプロパティがuserに設定されると、2つの接続プールが作成され、各プールの初期サイズ、つまり最小サイズがpool-initial-sizeに設定されます。したがってこの場合は、pool-initial-sizeで指定された合計接続数の2倍の数の接続が最初に存在することになります。詳細は、第20.2.1.5項「LDAPサーバー拡張のプロパティの変更」を参照してください。
pool-max-sizeremote-ldap-server-ssl-policyプロパティがuserに設定されると、2つの接続プールが作成され、各プールの最大サイズがpool-max-sizeに設定されます。
デフォルト値は接続数1000です。このプロパティの詳細は、第20.2.1.5項「LDAPサーバー拡張のプロパティの変更」を参照してください。
remote-ldap-server-ssl-portプロキシからリモートLDAPサーバーへのSSL接続のポート番号です。
ssl-client-aliasクライアントの認証のためにキーストアが作成されるときに、複数のキーがそのキーストアに保存されることがあります。このプロパティは、どのキーを使用するかを指定するために使用します。キーストアの詳細は、第26.1項「SSLの迅速な起動と実行」および第26.2項「キー・マネージャ・プロバイダの構成」を参照してください。
ssl-key-manager-providerLDAP拡張のために使用するキー・マネージャ・プロバイダを指定します。キー・マネージャ・プロバイダは必須ではなく、リモートLDAPサーバーがクライアント認証用に構成されている場合に使用できます。参照先のキー・マネージャ・プロバイダは、有効になっている必要があります。キー・マネージャ・プロバイダの詳細は、第26.2項「キー・マネージャ・プロバイダの構成」を参照してください。
ssl-trust-allこのパラメータをtrueに設定すると、すべてのリモートLDAPサーバーが信頼されます。デフォルト値はfalseです。この値をtrueに設定すると、リモートLDAPサーバーから証明書をインポートする必要はなくなりますが、接続がセキュアでなくなります。
|
注意: インタラクティブなdsconfig --advancedコマンドは、使用できる信頼マネージャ・プロバイダとしてブラインド信頼を提供しますが、ブラインド信頼はプロキシ・サーバーについてはサポートされていません。証明書をインポートする必要をなくすには、かわりにssl-trust-allパラメータをtrueに設定します。その結果、デプロイメントがセキュアでなくなるため、この設定は本番環境ではお薦めできません。テスト用にのみ使用してください。 |
remote-ldap-server-ssl-policyをneverに設定すると、ssl-trust-allパラメータの値は無意味になります。この場合、プロキシとの間のすべての接続がセキュアでなくなります(暗号化されません)。remote-ldap-server-ssl-policyの詳細は、第27.2項「セキュアな接続のモード」を参照してください。
ssl-trust-manager-providerLDAP拡張のためにどの信頼マネージャ・プロバイダを使用するかを指定します。信頼マネージャ・プロバイダは、ssl-trust-allパラメータがtrueに設定されていないかぎり必須です。参照先の信頼マネージャ・プロバイダは、有効になっている必要があります。