Notas de la versión de Sun Java System Communications Services 2005Q4

Permitir la navegación por directorios

Nuevo en esta versión 7 2005Q4, Connector para Microsoft Outlook permite que el usuario final navegue por los directorios. Al acceder a la página de la libreta de direcciones, se muestran las primeras 10 entradas del directorio. El usuario puede desplazarse hacia arriba y abajo o escribir unos pocos caracteres y ver los resultados automáticamente actualizados. Éste es un cambio con respecto a las versiones anteriores de Connector para Microsoft Outlook, donde el usuario sólo podía buscar un usuario concreto.

Para habilitar esta función mientras se mantiene un buen rendimiento, connector se basa en dos extensiones de control LDAP que se llaman Virtual List View (VLVl, vista de lista virtual) y clasificación de resultados de búsqueda del servidor (RFC 2891). El siguiente ejemplo de ldapsearch muestra la lista de los controles admitidos:

# 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 admite los dos controles. Sin embargo, el control VLV es, de forma predeterminada, el único disponible para los usuarios autenticados:

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";)

Para permitir el acceso anónimo al control VLV, agregue la ACI correspondiente:

#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"; )

Para mejorar el rendimiento de las búsquedas que requieren VLV además de clasificación, cree un índice de exploración en Directory Server (como se describe en “Managing Browsing Indexing” en la Sun Java System Directory Server 5 2005Q1 Administration Guide). Cada índice de exploración es específico para un DN de base, filtro de búsqueda, ámbito y atributo de clasificación. La configuración de VLV se puede ajustar en el cliente utilizando la herramienta de configuración de implementación.

En dicho caso concreto, se debe crear un índice de exploración para un dn de base igual a dc=red,dc=iplanet,dc=com, un filtro igual a (&(mail=*)(cn=*)), utilizando una clasificación en el atributo cn. La información del índice de exploración se agrega a la configuración que contiene el dn de base (en este caso 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 

A continuación, ejecute el comando vlvindex, que se encuentra en serverroot/slapd-instance:

# ./vlvindex -n userRoot -T "Sort by cn"