2.4.6.2. Server Two の設定
- Server 2 でプロキシー管理ユーザーを作成します。この管理ユーザーは、サーバー 1 がバインドし、サーバー 2 への認証を許可するために使用されます。Server 1 に固有のプロキシー管理ユーザー名を選択すると便利です。これは、サーバー 2 にバインドできる プロキシー管理ユーザーです。以下のようにプロキシー管理ユーザーを作成します。
dn: cn=server1 proxy admin,cn=config objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson cn: server1 proxy admin sn: server1 proxy admin userPassword: secret description: Entry for use by database links
警告Directory Manager または管理者 ID ユーザーをリモートサーバーのプロキシー管理ユーザーとして使用しないでください。これにより、セキュリティーホール が作成されます。 - Server 2 でデータベースリンク DBLink2 を設定します。
dn: cn=DBLink2,cn=chaining database,cn=plugins,cn=config objectclass: top objectclass: extensibleObject objectclass: nsBackendInstance nsslapd-suffix: l=Zanzibar,c=africa,ou=people,dc=example,dc=com nsfarmserverurl: ldap://zanz.africa.example.com:389/ nsMultiplexorBindDN: cn=server2 proxy admin,cn=config nsMultiplexorCredentials: secret cn: DBLink2 nsCheckLocalACI:on dn: cn="l=Zanzibar,c=africa,ou=people,dc=example,dc=com",cn=mapping tree,cn=config objectclass: top objectclass: extensibleObject objectclass: nsMappingTree nsslapd-state: backend nsslapd-backend: DBLink2 nsslapd-parent-suffix: c=africa,ou=people,dc=example,dc=com cn: l=Zanzibar,c=africa,ou=people,dc=example,dc=com
データベースリンク DBLink2 はカスケード連鎖設定の中間データベースリンクであるため、nsCheckLocalACI
属性を on に設定して、クライアントとプロキシーの管理ユーザーによるデータベースリンクへのアクセスを許可するかどうかをサーバーが確認できるようにします。 - Server 2 のデータベースリンクは、プロキシー承認制御とループ検出制御を送信するように設定する必要があります。プロキシー認証制御とループ検出制御を実装するには、対応する OID の両方を指定します。以下の情報を Server 2 の cn=config,cn=chaining database,cn=plugins,cn=config エントリーに追加します。
dn: cn=config,cn=chaining database,cn=plugins,cn=config changetype: modify add: nsTransmittedControl nsTransmittedControl: 2.16.840.1.113730.3.4.12 nsTransmittedControl: 1.3.6.1.4.1.1466.29539.12
nsTransmittedControl: 2.16.840.1.113730.3.4.12 は、プロキシー承認コントロールの OID です。nsTransmittedControl: 1.3.6.1.4.1.1466.29539.12 はループ検出制御になります。ループ検出制御が設定されているかどうかについて確認し、それに応じて上記のコマンドを調整します。 - ACI を設定します。Server 2 で、l=Zanzibar,c=africa,ou=people,dc=example,dc=com 接尾辞の上に接尾辞が存在することを確認し、以下のアクションが利用できるようにします。
- データベースリンク接尾辞の追加
- サーバー 2 で作成されたプロキシー認証ユーザーを使用してサーバー 1 が接続できるようにローカルプロキシー認証 ACI を追加します。
- ローカルクライアントの ACI を追加し、クライアント操作が Server 2 で成功し、サーバー 3 に転送できます。ローカルの ACI チェックが DBLink2 データベースリンクに対して有効になっているため、このローカル ACI が必要です。
どちらの ACI も c=africa,ou=people,dc=example,dc=com 接尾辞が含まれるデータベースに配置されます。注記これらの ACI を作成するには、エントリーを保持するために、c =africa,ou=people,dc=example,dc=com 接尾辞に対応するデータベースがすでに存在している必要があります。このデータベースは、各データベースリンクのnsslapd-suffix
属性で指定された接尾辞上の接尾辞と関連付ける必要があります。つまり、最終的な宛先サーバーの接尾辞は、中間サーバーで指定された接尾辞のサブ接尾辞になります。- ローカルプロキシー認証 ACI を c=africa,ou=people,dc=example,dc=com エントリーに追加します。
aci:(targetattr="*")(target="l=Zanzibar,c=africa,ou=people,dc=example,dc=com") (version 3.0; acl "Proxied authorization for database links"; allow (proxy) userdn = "ldap:///cn=server1 proxy admin,cn=config";)
- 次に、ACI チェックが有効になっているとクライアント操作をサーバー 2 で成功できるようにするローカルクライアント ACI を追加します。この ACI は、l=Zanzibar,c=africa,ou=people,dc=example,dc=com ブランチへのアクセスを提供するために、宛先サーバーで作成された ACI と同じです。c=us,ou=people,dc=example,dc=com 内のすべてのユーザーには、サーバー 3 の l=Zanzibar,c=africa,ou=people,dc=example,dc=com のエントリーへの更新アクセス権が必要になる場合があります。c=africa,ou=people,dc=example,dc=com 接尾辞に以下の ACI を作成し、これを許可します。
aci:(targetattr="*")(target="l=Zanzibar,c=africa,ou=people,dc=example,dc=com") (version 3.0; acl "Client authorization for database links"; allow (all) userdn = "ldap:///uid=*,c=us,ou=people,dc=example,dc=com";)
この ACI は、Server 1 の c=us,ou=people,dc=example,dc=com の UID を持つクライアントが、サーバーの l=Zanzibar,c=africa,ou=people,dc=example,dc=com 接尾辞ツリーであらゆる種類の操作を実行できます。Server 2 に、サーバー 3 に追加の権限を必要とする別の接尾辞にユーザーがある場合は、Server 2 に追加のクライアント ACI を追加する必要がある場合があります。