2.4.3. コマンドラインからのカスケード連鎖の設定
コマンドラインでデータベースリンクのカスケードを設定するには、以下を実行します。
- 中間データベースリンクが含まれるサーバーの URL に 1 つのデータベースリンクを指定します。カスケード連鎖を作成するには、あるデータベースリンクの
nsFarmServerURL
属性には、別のデータベースリンクが含まれるサーバーの URL が含まれている必要があります。example1.com と呼ばれるサーバーのデータベースリンクが、africa.example.com と呼ばれるサーバーのデータベースリンクを参照するとします。たとえば、Server 1 のデータベースリンクの cn= database_link, cn=chaining database,cn=plugins,cn=configエントリーには以下が含まれます。nsFarmServerURL: ldap://africa.example.com:389/
- プロキシー認証制御を送信するように、中間データベースリンクまたはリンク(例: Server 2)を設定します。デフォルトでは、データベースリンクは Proxy Authorization Control を送信しません。ただし、1 つのデータベースリンクが別の接続する場合、このコントロールは最終的な送信先サーバーに必要な情報を送信するために使用されます。中間データベースリンクはこの制御を送信する必要があります。プロキシー承認制御を送信するようにデータベースリンクを設定するには、中間データベースリンクの cn=config,cn=chaining database,cn=plugins,cn=config エントリーに以下を追加します。
nsTransmittedControls: 2.16.840.1.113730.3.4.12
OID 値は Proxy Authorization Control を表します。LDAP 制御チェーンの詳細は、「LDAP 制御チェーン」 を参照してください。 - すべての中間データベースリンクに、プロキシー管理ユーザー ACI を作成します。ACI は、要求を別のサーバーに変換する前に、最初のデータベースリンクの権限を確認する中間データベースリンクが含まれるサーバーに存在している必要があります。たとえば、Server 2 が Server 1 の認証情報を確認しない場合、ユーザーは 匿名 としてバインドし、プロキシー認証制御を渡し、適切よりも多くの管理権限を許可できます。プロキシー ACI はこのセキュリティー違反を防ぎます。
- 中間データベースリンクが含まれるサーバーにデータベースがない場合は、データベースを作成します。このデータベースには、admin ユーザーエントリーおよび ACI が含まれます。データベースの作成に関する詳細は、「データベースの作成」 を参照してください。
- データベースの管理ユーザーに対応するエントリーを作成します。
- 適切な接尾辞をターゲットとする管理ユーザーの ACI を作成します。これにより、管理者はデータベースリンクの接尾辞にのみアクセスできます。以下に例を示します。
aci: (targetattr = "*")(version 3.0; acl "Proxied authorization for database links"; allow (proxy) userdn = "ldap:///cn=proxy admin,cn=config";)
この ACI は、簡単なチェーンの設定時にリモートサーバーに作成された ACI と似ています。
警告ディレクトリーの制限された領域へのアクセス権限を付与しないようにチェーンを有効にする場合は、アクセス制御を慎重に検討します。たとえば、ブランチにデフォルトのプロキシー ACI が作成されると、データベースリンク経由で接続するユーザーは、ブランチの下にあるすべてのエントリーを表示できます。ユーザーがすべてのサブツリーを表示する必要がない場合もあります。セキュリティーホールを回避するには、追加の ACI を作成して、サブツリーへのアクセスを制限します。 - すべての中間データベースリンクで、ローカル ACI 評価を有効にします。プロキシー管理 ACI が使用されていることを確認するには、チェーンに関連するすべての中間データベースリンクのローカル ACI の評価を有効にします。以下の属性を、各中間データベースリンクの cn=database_link, cn=chaining database,cn=plugins,cn=config エントリーに追加します。
nsCheckLocalACI: on
cn =default instance config,cn=chaining database,cn=plugins,cn=config エントリーでこの属性を on に設定すると、すべての新規データベースリンクインスタンスが cn= database_link, cn=chaining database, cn=plugins,cn=config エントリーでnsCheckLocalACI
属性が設定されることを意味します。 - すべての中間データベースリンクおよび最終的な宛先データベースにクライアント ACI を作成します。ローカル ACI の評価が有効になっているため、適切なクライアントアプリケーション ACI をすべての中間データベースリンクおよび最終的な宛先データベースに作成する必要があります。中間データベースリンクでこれを行うには、まず最終的な宛先接尾辞のルート接尾辞を表す接尾辞が含まれるデータベースを作成します。たとえば、c =africa,ou=people,dc=example,dc=com 接尾辞に対して行われたクライアントの要求がリモートサーバーにチェーンされている場合、すべての中間データベースリンクに dc=example,dc=com 接尾辞に関連付けられたデータベースを含める必要があります。この上位接尾辞エントリーにクライアント ACI を追加します。以下に例を示します。
aci: (targetattr = "*")(version 3.0; acl "Client authentication for database link users"; allow (all) userdn = "ldap:///uid=* ,cn=config";)
この ACI により、Server 1 の cn=config エントリーにuid
を持つクライアントアプリケーションが、サーバー 3 の ou=people,dc=example,dc=com 接尾辞の下にあるデータに対して、あらゆる種類の操作を実行できます。