この 7 2005Q4 リリースから、Microsoft Outlook 版 Connector では一般ユーザーがディレクトリを参照できるようになりました。アドレス帳のページを呼び出すと、ディレクトリ内の先頭から 10 個のエントリが表示されます。ユーザーは上下にスクロールしたり、数文字を入力して、自動的に表示される結果を参照することができます。これは、ユーザーが特定の 1 ユーザーしか検索できなかった Microsoft Outlook 版 Connector の以前のバージョンからの変更点です。
パフォーマンスを維持しつつこの機能を有効にするために、Connector には仮想リスト表示 (VLV) および検索結果の server-side sorting (RFC 2891) という 2 つの LDAP 制御の拡張機能が備えられています。次の ldapsearch の例では、サポートされる制御のリストが返されます。
# ldapsearch -s base "objectclass=*" supportedControl supportedControl=2.16.840.1.113730.3.4.2 supportedControl=2.16.840.1.113730.3.4.3 supportedControl=2.16.840.1.113730.3.4.4 supportedControl=2.16.840.1.113730.3.4.5 supportedControl=1.2.840.113556.1.4.473 ------> Server Side Sort Control supportedControl=2.16.840.1.113730.3.4.9 ------> VLV Control supportedControl=2.16.840.1.113730.3.4.16 supportedControl=2.16.840.1.113730.3.4.15 supportedControl=2.16.840.1.113730.3.4.17 supportedControl=2.16.840.1.113730.3.4.19 supportedControl=1.3.6.1.4.1.42.2.27.9.5.2 supportedControl=1.3.6.1.4.1.42.2.27.9.5.6 supportedControl=2.16.840.1.113730.3.4.14 supportedControl=1.3.6.1.4.1.1466.29539.12 supportedControl=2.16.840.1.113730.3.4.12 supportedControl=2.16.840.1.113730.3.4.18 supportedControl=2.16.840.1.113730.3.4.13
Sun Java System Directory Server は、どちらの制御もサポートしています。しかしデフォルトでは、VLV 制御は認証されたユーザーしか利用できません。
ldapsearch -D "cn=Directory Manager" -b \ "oid=2.16.840.1.113730.3.4.9,cn=features,cn=config" \ "objectclass=*" aci oid=2.16.840.1.113730.3.4.9,cn=features,cn=config \ aci=(targetattr != "aci")(version 3.0; acl "VLV Request Control"; \ allow( read, search, compare, proxy ) userdn = "ldap:///all";)
VLV 制御への匿名アクセスを許可するには、対応する ACI を追加します。
#ldapmodify -D "cn=Directory Manager" \ dn: oid=2.16.840.1.113730.3.4.9,cn=features,cn=config \ changetype: modify add: aci aci: (targetattr !="aci")\ (version 3.0; acl "VLV Request Control"; allow (compare,read,search) \ userdn = "ldap:///anyone"; )
VLV と Sort を必要とする検索のパフォーマンスを向上させるには、Directory Server にブラウズインデックスを作成します (『Sun Java System Directory Server 5 2005Q1 Administration Guide』の「ブラウズインデックスの管理」参照)。各ブラウズインデックスは、ベース DN、検索フィルタ、スコープ、およびソート属性ごとに固有です。VLV 設定は、クライアント側で配備設定ツールを使用して調整できます。
ここでは、CN 属性にソートを使用し、dc=red,dc=iplanet,dc=com と等しいベース DN および (&(mail=*)(cn=*)) と等しいフィルタに対してブラウズインデックスを作成する必要があります。ブラウズインデックスの情報は、ベース DN (この場合 userRoot) を含む設定に追加されます。
#ldapmodify -D "cn=Directory Manager" dn: cn=Browsing red.sesta.com,cn=userRoot, cn=ldbm database,cn=plugins,cn=config changetype: add objectClass: top objectClass: vlvSearch cn: Browsing red.sesta.com vlvbase: dc=red,dc=sesta,dc=com vlvscope: 2 vlvfilter: (&(mail=*)(cn=*)) aci: (targetattr="*") (version 3.0; acl "VLV for Anonymous"; allow (read,search,compare) userdn="ldap:///anyone";) dn: cn=Sort by cn, cn=Browsing red.sesta.com,cn=userRoot, cn=ldbm database,cn=plugins,cn=config changetype: add objectClass: top objectClass: vlvIndex cn: Sort by cn vlvSort: cn
次に、 serverroot/slapd-instance の下にある vlvindex コマンドを実行します。
# ./vlvindex -n userRoot -T "Sort by cn"