2. Directory Serverのインスタンスと接尾辞
7. Directory Serverのパスワード・ポリシー
8. Directory Serverのバックアップとリストア
9. Directory Serverのグループ、ロールおよびCoS
16. Directory Proxy Serverのツール
17. Directory Proxy Serverのインスタンス
19. Directory Proxy Serverの証明書
20. Directory Proxy Serverのロード・バランシングとクライアント・アフィニティ
Directory Proxy Serverの配布アルゴリズムの構成
サブツリーの様々な部分が異なるデータソースに格納されている場合に単一のアクセス・ポイントを提供するデータ・ビュー
サブツリーの様々な部分が異なるデータソースに格納されている場合に単一のアクセス・ポイントを提供するデータ・ビューを構成するには:
階層および配布アルゴリズムを持つデータ・ビューを構成するには:
22. Directory Proxy Serverによる仮想化
24. Directory Proxy ServerとバックエンドLDAPサーバーの接続
25. クライアントとDirectory Proxy Serverの接続
26. Directory Proxy Serverのクライアント認証
27. Directory Proxy Serverのロギング
28. Directory Proxy Serverの監視とアラート
第3部 Directory Service Control Centerの管理
単純なデータ配布は、AからMで始まるUIDを持つエントリをあるディレクトリ・セットに格納し、NからZで始まるUIDを持つエントリを別のディレクトリ・セットに格納することによって構成されます。Directory Proxy Serverは、すべてのクライアント操作を受信します。サーバーは、どちらのディレクトリ・セットがAからMを処理し、どちらのセットがNからZを処理するかを決定する必要があります。
このデータ配布シナリオを処理するためのDirectory Proxy Serverの構成の重要なステージは次のとおりです。
Directory Proxy Serverのデータソースとしてディレクトリを追加します。
データソースをデータソース・プールに追加し、異なるデータ配布を処理します。
クライアント・リクエストを適切なデータ・プールに配布するように設計されたデータ・ビューを作成します。
適切なデータソースにロードされるようにLDIFを分割します。
分割したLDIFを適切なデータソースにインポートします。
適切なデータ・プールにアタッチされたデータソースに対して操作ベースの重みを調整します。
次に示すのは、Directory Proxy Serverがポート9389でリッスンしている例です。例を単純にするために、プロキシはここで構成され、3つのDirectory Serverのインスタンス間でのみ配布されます。可用性および読込み拡張性のため、複製されたディレクトリ・トポロジを使用してLDAPデータを格納します。あるDirectory ServerのインスタンスdsA-M:1389が、AからMで始まるUIDを持つユーザー・エントリを処理します。別のDirectory ServerのインスタンスdsN-Z:2389が、NからZで始まるUIDを持つユーザー・エントリを処理します。最後のディレクトリのインスタンスdsBase:3389が接尾辞のベース・エントリを処理します。
最初の手順では、データソースを作成して有効化します。ベース・データソースは、UIDのない接尾辞のルートの近くのエントリを保持します。通常のデプロイメントでは、これらのエントリ数は、配布されるエントリ数よりもはるかに少ないです。
$ dpconf create-ldap-data-source -p 9389 dsA-M localhost:1389 $ dpconf set-ldap-data-source-prop -p 9389 dsA-M is-enabled:true $ dpconf create-ldap-data-source -p 9389 dsN-Z localhost:2389 $ dpconf set-ldap-data-source-prop -p 9389 dsN-Z is-enabled:true $ dpconf create-ldap-data-source -p 9389 dsBase localhost:3389 $ dpconf set-ldap-data-source-prop -p 9389 dsBase is-enabled:true
2番目の手順で、データソースをデータソース・プールに追加します。
$ dpconf create-ldap-data-source-pool -p 9389 "Base Pool" $ dpconf attach-ldap-data-source -p 9389 "Base Pool" dsBase $ dpconf create-ldap-data-source-pool -p 9389 "A-M Pool" $ dpconf attach-ldap-data-source -p 9389 "A-M Pool" dsA-M $ dpconf create-ldap-data-source-pool -p 9389 "N-Z Pool" $ dpconf attach-ldap-data-source -p 9389 "N-Z Pool" dsN-Z
3番目の手順で、クライアント・リクエストを適切なデータ・プールに配布するように設計されたデータ・ビューを作成します。ベース・プールがdc=example,dc=comを処理するのに対して、UID値に従って配布されたデータを保持するプールはou=people,dc=example,dc=comを処理することに注目してください。この手順では、サーバーの再起動が必要です。
$ dpconf create-ldap-data-view -p 9389 "Base View" "Base Pool" \ dc=example,dc=com $ dpconf create-ldap-data-view -p 9389 "A-M View" "A-M Pool" \ ou=people,dc=example,dc=com $ dpconf set-ldap-data-view-prop -p 9389 "A-M View" \ distribution-algorithm:lexicographic lexicographic-attrs:uid \ lexicographic-lower-bound:a lexicographic-upper-bound:m The proxy server will need to be restarted in order for the changes to take effect $ dpconf create-ldap-data-view -p 9389 "N-Z View" "N-Z Pool" \ ou=people,dc=example,dc=com $ dpconf set-ldap-data-view-prop -p 9389 "N-Z View" \ distribution-algorithm:lexicographic lexicographic-attrs:uid \ lexicographic-lower-bound:n lexicographic-upper-bound:z The proxy server will need to be restarted in order for the changes to take effect $ dpadm restart /local/dps
4番目の手順では、適切なデータソースにロードされるようにLDIFを分割します。この例では、初期分割を実行するdpadm split-ldifコマンドと、すべてのデータソースの最上位エントリを保持するようにするためのファイル編集の両方を使用します。こうすることによって、アクセス制御手順を指定する最上位エントリの保持と各データソースに対する単一のインポート・コマンドの使用の両方が可能になります。
$ dpadm split-ldif /local/dps /opt/SUNWdsee7/resources/ldif/Example.ldif /tmp
この手順では、インポート前にLDIFに追加される最上位エントリも必要です。
$ cp /opt/SUNWdsee7/resources/ldif/Example.ldif /tmp/top.ldif $ vi /tmp/top.ldif dn: dc=example,dc=com objectclass: top objectclass: domain dc: example aci: (target ="ldap:///dc=example,dc=com")(targetattr != "userPassword")(version 3.0;acl "Anonymous read-search access"; allow (read, search, compare)(userdn = "ldap:///anyone");) aci: (target="ldap:///dc=example,dc=com") (targetattr = "*")(version 3.0; acl "allow all Admin group"; allow(all) groupdn = "ldap:///cn=Directory Administrators,ou=Groups,dc=example,dc=com";) $ cat /tmp/top.ldif /tmp/base\ view.ldif > /tmp/top\ and\ base\ view.ldif $ cat /tmp/top.ldif /tmp/a-m\ view.ldif > /tmp/top\ and\ a-m\ view.ldif $ cat /tmp/top.ldif /tmp/n-z\ view.ldif > /tmp/top\ and\ n-z\ view.ldif
5番目の手順では、分割したLDIFを適切なデータソースにインポートします。ここで、ベース・エントリを処理するディレクトリは、ポート3389にあります。A-Mを処理するディレクトリは、ポート1389をリッスンしています。N-Zを処理するディレクトリは、ポート2389をリッスンしています。
$ dsconf import -p 1389 /tmp/top\ and\ a-m\ view.ldif dc=example,dc=com ... Task completed (slapd exit code: 0). $ dsconf import -p 2389 /tmp/top\ and\ n-z\ view.ldif dc=example,dc=com ... Task completed (slapd exit code: 0). $ dsconf import -p 3389 /tmp/top\ and\ base\ view.ldif dc=example,dc=com ... Task completed (slapd exit code: 0).
6番目の手順では、適切なデータ・プールにアタッチされたデータソースに対して操作ベースの重みを調整します。クライアント・アプリケーションが検索以外の操作を実行する場合、重みをその操作に対しても設定する必要があります。
$ dpconf set-attached-ldap-data-source-prop -p 9389 "Base Pool" dsBase search-weight:1 $ dpconf set-attached-ldap-data-source-prop -p 9389 "A-M Pool" dsA-M search-weight:1 $ dpconf set-attached-ldap-data-source-prop -p 9389 "N-Z Pool" dsN-Z search-weight:1
操作ベースの重みを設定した後、クライアント・アプリケーションは、データが物理的に配布されなかったかのようにDirectory Proxy Serverを検索できます。
次の検索は、UIDがRで始まるユーザーを検索します。
$ ldapsearch -p 9389 -b dc=example,dc=com uid=rfisher version: 1 dn: uid=rfisher, ou=People, dc=example,dc=com cn: Randy Fisher sn: Fisher givenName: Randy objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson ou: Human Resources ou: People l: Cupertino uid: rfisher mail: rfisher@example.com telephoneNumber: +1 408 555 1506 facsimileTelephoneNumber: +1 408 555 1992 roomNumber: 1579
次の検索は、ベース・エントリの1つを検索します。
$ ldapsearch -p 9389 -b ou=groups,dc=example,dc=com cn=hr\ managers version: 1 dn: cn=HR Managers,ou=groups,dc=example,dc=com objectClass: top objectClass: groupOfUniqueNames cn: HR Managers ou: groups uniqueMember: uid=kvaughan, ou=People, dc=example,dc=com uniqueMember: uid=cschmith, ou=People, dc=example,dc=com description: People who can manage HR entries