Notes de version de Sun Java System Communications Services 2005Q4

Autorisation de parcours de l'annuaire

Une des nouveautés de la version 7 2005Q4, Connector pour Microsoft Outlook permet désormais aux utilisateurs de parcourir l'annuaire. Lors de l'ouverture de la page du carnet d'adresses, les 10 premières entrées de l'annuaire sont affichées. L'utilisateur peut faire défiler la page vers le bas et vers le haut, ou entrer quelques caractères et consulter les résultats actualisés automatiquement. Ceci est différent des versions précédentes de Connector pour Microsoft Outlook où l'utilisateur pouvait rechercher uniquement un utilisateur particulier.

Pour activer cette fonction tout en conservant des performances optimales, Connector s'appuie sur des extensions de contrôles LDAP, appelées Affichage de la liste virtuelle, et le tri côté serveur des résultats de la recherche (RFC 2891). L'exemple ldapsearch suivant renvoie la liste des contrôles pris en charge :

# 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 prend en charge les deux contrôles. Toutefois, le contrôle d'affichage de la liste virtuelle est disponible par défaut uniquement pour les utilisateurs authentifiés :

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

Pour autoriser l'accès anonyme au contrôle d'affichage de la liste virtuelle, ajoutez l'ACI correspondante :

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

Pour améliorer les performances des recherches qui requièrent l'affichage de la liste virtuelle et le tri, créez un index de navigation dans Directory Server (comme expliqué dans la section “Managing Browsing Indexing” du manuel Sun Java System Directory Server 5 2005Q1 Administration Guide). Chaque index de navigation est spécifique à un DN de base, un filtre de recherche, une étendue et un attribut de tri. Les paramètres d'affichage de la liste virtuelle peuvent être réglés côté client à l'aide de l'outil de configuration du déploiement.

Dans ce cas précis, un index de navigation doit être créé pour un dn de base égal à dc=red,dc=iplanet,dc=com, un filtre égal à (&(mail=*)(cn=*)), à l'aide d'un tri sur l'attribut cn. Les informations d'index de navigation sont ajoutées à la configuration contenant le dn de base (dans ce cas 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 

Exécutez ensuite la commande vlvindex qui se trouve dans serverroot/slapd-instance :

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