Oracle® Fusion Middleware Oracle Directory Server Enterprise Editionリファレンス 11g リリース1 (11.1.1.7.0) B72441-01 |
|
![]() 前 |
![]() 次 |
この章では、Directory Proxy Serverが受信クライアント接続を特定する方法について説明します。この章の内容は次のとおりです。
クライアント認証は、クライアントが自身をDirectory Proxy Serverに特定させる方法を判断します。
プロトコルの観点では、クライアント認証は2つのレベルで行われます。
LDAPレベル。認証は、LDAPバインド操作で行われます。
接続レベル。認証は、クライアントとDirectory Proxy Serverの間に確立されたネットワーク接続で行われます。
Directory Proxy Serverは、クライアント接続を認証なしで受け入れるように構成できます。
次のリストは、サポートされている認証オプションをまとめたものです。この章の後の項で、これらのオプションを詳しく説明します。
単純バインド認証。単純バインド認証は、バインド・レベルで行われます。クライアントがバインドすると、クライアントは、Directory Proxy Serverへの一意の名前(バインドDN)とパスワードを提供します。Directory Proxy Serverは、バインド・リクエストとともにこれらの資格証名をバックエンドLDAPサーバーに転送します。
単純バインド認証は、セキュアな接続上で行うこともできます。その場合でも、サーバーは、バインドDNからクライアントを特定します。
証明書ベースの認証。証明書ベースの認証は、接続がセキュアな場合に接続レベルで行われます。認証が接続レベルで行われると、クライアントは暗号化された接続(SSL)で接続し、証明書を提供します。Directory Proxy Serverは、クライアント証明書の有効性をチェックし、証明書をLDAP DNにマップします。
認証なし。クライアントが証明書またはバインドDNとパスワードを提供しない場合、認証は行われません。この場合、クライアントは匿名でDirectory Proxy Serverに接続します。これは、匿名アクセスと呼ばれます。
単純バインド認証は、LDAPクライアントを認証する最も一般的な方法です。単純バインドでは、クライアントは、匿名でバインドする、つまり空のバインドDNを使用するか、DNとパスワードを提供してバインドします。Directory Proxy Serverはデータソースにバインドして、資格証明を検証し、クライアントを認証します。クライアントのエントリは、データソースに存在する必要があり、それ以外の場合、クライアントは匿名とみなされます。クライアントが認証されると、Directory Proxy Serverはクライアントのアイデンティティを記録します。
Directory Proxy Serverは、デフォルトでは、単純バインド認証に構成されています。追加の構成は必要ありません。クライアントはDirectory Proxy Serverにパスワードを提供するため、単純バインド認証はパスワード・ベースの認証とも呼ばれます。
パスワードの暗号化方法および確認方法は、クライアントがデータソースにアクセスする際に使用するデータ・ビューの種類によって異なります。データ・ビューの詳細は、第17章「Directory Proxy Serverの配布」および第18章「Directory Proxy Serverの仮想化」を参照してください。
LDAPデータ・ビューでは、Directory Proxy Serverのパスワード暗号化と検証は、バックエンドLDAPサーバーに依存します。クライアントがADDまたはMODIFY操作を使用してパスワードを変更する場合、バックエンドLDAPサーバーは、パスワードを格納するときにパスワード暗号化ポリシーを適用できます。クライアントがBINDリクエストを発行すると、LDAPサーバーはパスワードを検証します。
LDIFおよびJDBCデータ・ビューでは、Directory Proxy Serverのパスワード暗号化と検証を行います。クライアントがパスワードを変更すると、Directory Proxy Serverは、データ・ビューのdb-pwd-encryption
のプロパティによって定義されている暗号化ポリシーを適用します。暗号化ポリシーには、PLAIN、SHA、SSHAまたはSHA512を指定できます。SolarisおよびUNIXでは、追加オプションでCrypt暗号化ポリシーを使用できます。パスワードは引き続きデータソース、つまりLDIFファイルまたはJDBCデータベースに格納されます。デフォルトでは、パスワードはSSHAを使用して暗号化されます。
暗号化されたパスワードを格納すると、暗号化された値に暗号化ポリシーが付けられます。たとえば、格納された暗号化パスワードは、{SSHA}mcasopjebjakiue
または{SHA}askjdlaijfbnja
のようになります。クライアントがBINDリクエストを発行すると、Directory Proxy Serverはパスワードを検証し、暗号化ポリシー・タグを要求します。
SSL接続上での証明書ベースの認証は、最もセキュアな認証タイプです。そのため、認証が接続層で行われる場合、クライアントは、LDAPバインド中に追加の名前(バインドDN)とパスワードをDirectory Proxy Serverに指定する必要がありません。
クライアントは、SSL接続を介してのみ証明書ベースの認証を実行できます。SSL接続の確立の基本的な手順は、次のとおりです。
クライアントは、セキュアな接続の確立をリクエストします。
このリクエストの一環として、Directory Proxy Serverは、クライアントにサーバー証明書を提供します。サーバー証明書は、Directory Proxy Serverの1インスタンスに関連付けられた単一の証明書です。セキュアな接続を使用すると、サーバー証明書は、クライアントへのDirectory Proxy Serverのインスタンスを特定します。
接続の確立には、ネゴシエーション・フェーズが含まれます。このフェーズの間、クライアントとDirectory Proxy Serverは、使用されている暗号化ポリシーの承認を試みます。サーバー証明書には、Directory Proxy Serverがサポートしている暗号化ポリシー(暗号)のリストが含まれています。
プロキシ・サーバーのセキュリティ構成によっては、サーバーは、クライアントによる証明書の提供を要求する場合があります。
クライアントは、クライアントが証明書をサーバーに提供するように構成されている、またはプロキシ・サーバーがそれをリクエストしているため、証明書をサーバーに提供します。
クライアントは次に、LDAPバインド・リクエストをDirectory Proxy Serverに送信して、その接続に対してクライアントのアイデンティティを確立します。
リクエストが単純バインドである場合、Directory Proxy Serverは、クライアントが提供するバインドDNとパスワードを使用します。
リクエストがSASL外部バインドである場合、Directory Proxy Serverは、次の2つのうちのいずれかを実行します。
証明書のサブジェクトをクライアントのバインドDNとしてみなす。
受け取った証明書に一致するエントリのバックエンド・サーバーを検索して証明書をマップする。verify-certs
プロパティが設定されている場合、Directory Proxy Serverは、受け取った証明書が見つかったエントリに格納されいる証明書であるかどうかを検証します。
次の構成プロパティは、Directory Proxy Serverがその検索を実行する方法を決定します。
cert-data-view-routing-policy cert-data-view-routing-custom-list cert-search-bind-dn cert-search-bind-pwd-file cert-search-base-dn cert-search-attr-mappings
プロキシ・サーバーにバインドDNがある場合、プロキシ・サーバーはクライアントの有効性を検証することができます。
Directory Proxy ServerのSSLの詳細は、「Directory Proxy ServerのSecure Sockets Layer」を参照してください。
証明書ベースの認証を行うには、Directory Proxy Serverがクライアント証明書を受け入れ、クライアントがSASL外部バインドを使用するように構成されている必要があります。
Directory Proxy Serverインスタンスを作成すると、証明書データベースに、信頼できるCAのCA証明書が自動的に移入されます。必要に応じて、Directory Service Control Center (DSCC)またはdpadm
コマンドを使用して、信頼できるCA証明書を証明書データベースに追加できます。詳細は、『Oracle Directory Server Enterprise Edition管理者ガイド』のDirectory Proxy ServerにCA署名付きサーバー証明書をインストールする方法に関する説明を参照してください。
クライアントがDirectory Proxy Serverに証明書を提供すると、サーバーは、信頼できるCA証明書のリストに対するその証明書が、その証明書データベースにあるかどうか検証します。サーバーの証明書データベースにクライアント証明書自体またはクライアント証明書の生成に使用されたCA証明書が含まれている場合、検証は正常に実行されています。
サーバー証明書は、次のいずれかを使用できます。
自己署名付き証明書。公開鍵と秘密鍵のペアで、公開鍵はDirectory Proxy Serverによって署名されています。
信頼できるCA証明書。社内の証明書サーバーまたは既知の認証局(CA)によって自動的に生成された単一の証明書です。
また、Directory Proxy Serverは、サーバー証明書チェーンもサポートしています。サーバー証明書チェーンは、社内の証明書サーバーまたは既知のCAによって自動的に生成された証明書の集合です。チェーンの証明書は、元のCAにトレースバックして、アイデンティティの証明を提供します。この証明は、新しいサーバー証明書を取得またはインストールするたびに必要です。
Directory Proxy Serverのインスタンスが作成されると、デフォルトの自己署名付き証明書が作成されます。デフォルトでは、Directory Proxy ServerはSSL証明書データベースのパスワードを内部的に管理します。
任意の数の証明書をサーバーにインストールできます。Directory Proxy ServerのインスタンスのSSLを構成する場合、少なくとも1つ以上のサーバー証明書および1つの信頼できるCA証明書をインストールする必要があります。
証明書ベースの認証が動作する仕組みの説明は、「証明書ベースの認証」を参照してください。Directory Proxy Serverの証明書ベースの認証の構成方法の詳細は、『Oracle Directory Server Enterprise Edition管理者ガイド』の証明書ベースの認証の構成方法に関する説明を参照してください。
クライアントが単純バインド認証およびセキュリティ・レイヤー(SASL)外部バインドを使用してDirectory Proxy Serverにバインドすると、Directory Proxy Serverは、バインドDNからではなく、クライアントの証明書からクライアントの資格証明を取得します。
サーバーは、次の2つのうちのいずれかの方法で証明書を取得します。
証明書のサブジェクトをクライアントのバインドDNとしてみなす。
証明書サブジェクトをそれ自身のデータベース内のデータにマップし、バインドDNを推定する。
Directory Proxy Serverがバインド・リプレイに構成されている場合、SASL外部バインドは使用できません。バインド・リプレイでは、クライアントDNおよびパスワードを使用して、Directory Proxy ServerがクライアントをバックエンドLDAPサーバーに認証します。SASL外部バインドでは、パスワードはクライアントから提供されません。また、ユーザー・エントリに格納されているパスワードはクリア・テキストで表示できません。バインド・リプレイの詳細は、「バインド・リプレイに構成されたDirectory Proxy Server」を参照してください。
SSLを使用して、クライアントとDirectory Proxy Serverの間の以降の相互作用を保護することができます。
SASL外部バインドによる認証の構成方法の詳細は、『Oracle Directory Server Enterprise Edition管理者ガイド』のSASL外部バインドにDirectory Proxy Serverを構成する方法に関する説明を参照してください。
匿名アクセスを使用すると、ユーザーが認証されているかどうかに関係なく、任意のクライアントに対してデータが利用可能になります。
クライアントからの匿名接続にDirectory Proxy Serverを構成する方法の詳細は、『Oracle Directory Server Enterprise Edition管理者ガイド』の匿名アクセスの構成方法に関する説明を参照してください。
Directory Proxy Serverでは、クライアント・リスナーを使用して、クライアント接続の特定の側面を構成することができます。セキュアなリスナー(ldaps-listener
)とセキュアでないリスナー(ldap-listener
)の2つのクライアント・リスナーが提供されます。
セキュアなリスナーにより、接続がSSLを介してセキュアなポートに作成されるように指定されます。セキュアでないリスナーでは、接続がSSLを使用せずに、セキュアでないポートに作成されるように指定されます。クライアントは、必要な接続タイプに応じて、セキュアなリスナーまたはセキュアでないリスナーのいずれかを使用します。
注意: クライアントがStart TLSをサポートしている場合、そのクライアントは、セキュアでないポートにセキュアな接続を確立することもできます。 |
セキュアなリスナーおよびセキュアでないリスナーのいずれも、クライアント接続の次の側面を指定します。
is-enabled
クライアントがそのリスナーを使用してDirectory Proxy Serverに接続できるかどうかを指定する
listen-port
Directory Proxy Serverがクライアント接続をリッスンするポート番号
listen-address
リスナーのIPアドレス
connection-idle-timeout
クライアント接続が、閉じられるまでアイドル状態でいることができる最長時間
connection-read-data-timeout
リスナーが新しいデータが利用可能になるのを待機できる最長時間
connection-write-data-timeout
結果をクライアントに戻すまでにリスナーが待機できる最長時間
max-connection-queue-size
リスナーの接続キューの最大サイズ
max-ldap-message-size
LDAPメッセージの最大サイズ
number-of-threads
同時クライアント接続およびリクエストのためにリスナーに割り当てられるスレッドの数
use-tcp-no-delay
クライアントとDirectory Proxy Serverの間の接続にTCP_NODELAY
を有効化するかどうか
リスナーの構成方法の詳細は、『Oracle Directory Server Enterprise Edition管理者ガイド』のリスナーとDirectory Proxy Serverの間のリスナーの構成に関する説明を参照してください。