做為此 7 2005Q4 發行版本中的新增功能,Connector for Microsoft Outlook 現在允許一般使用者瀏覽目錄。開啟通訊錄頁面時,將顯示目錄中的前 10 個項目。然後使用者可以上下捲動,或鍵入少量字元即可看到結果自動重新整理。這是之前 Connector for Microsoft Outlook 版本的變更,在該版本中使用者僅能搜尋一個特定使用者。
若要在保持良好效能的同時啟用此功能,連接器依靠兩個名為 Virtual List View (VLV) 和 Server Side Sorting of Search Results (RFC 2891) 的 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 plus Sort 之搜尋的效能,請在 Directory Server 中建立瀏覽索引 (如「Sun Java System Directory Server 5 2005Q1 Administration Guide」的「Managing Browsing Indexing」中所述)。每個瀏覽索引特定於一個基底 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"