Sun Java System Communications Services 2005Q4 发行说明

允许目录浏览

本 7 2005Q4 发行版中的新增功能,Connector for Microsoft Outlook 现已允许最终用户浏览目录。当打开通讯录页面时,将显示目录中的前 10 个条目。然后,用户可以向上和向下滚动查看,也可以键入一些字符以查看自动刷新的结果。这是与先前版本的 Connector for Microsoft Outlook 的不同之处,用户使用那些先前版本时只能搜索一个特定的用户。

要启用此功能,同时还要保持良好的性能,连接器需要使用两种 LDAP 控制扩展功能:虚拟列表视图 (Virtual List View, VLV) 和服务器端搜索结果排序 (Server Side Sorting of Search Results) (RFC 2891)。以下 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 和排序的搜索性能,请在 Directory Server 中建立浏览索引(如《Sun Java System Directory Server 5 2005Q1 Administration Guide》中的 "Managing Browsing Indexing" 所述)。每个浏览索引均特定于一个基本 DN、搜索过滤器、范围以及排序属性。可以在客户端使用部署配置工具调整 VLV 设置。

在特殊情况下,如果基本 DN 为 dc=red,dc=iplanet,dc=com、过滤器为 (&(mail=*)(cn=*)),并对 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"