En ce moment je suis en train de mettre en place (pour la n-ième fois) un annuaire LDAP pour un client afin d’y stocker quelques milliers de contacts. L’annuaire, un Fedora Directory Server 1.0.1 (belle bête, j’aime beaucoup), sera interrogé par le biais d’une interface web spécifique, mais aussi directement depuis les clients Outlook.
J’ai donc effectué quelques tests avec mon Outlook 2002 SP3 (c’est celui utilisé ici) et voici les champs qui apparaissent dans le carnet d’adresses après avoir double-cliqué sur le résultat d’une recherche dans l’annuaire :

Attribut LDAP Nom dans Outlook 2002 SP3
Onglet Général
Nom sn
Prénom givenName
Initiales initials
Nom complet * (voir plus loin)
Alias mailNickName si présent, givenName sinon
Adresse postalAddress (les $ sont transformés en retour à la ligne)
Code postal postalCode
Ville l
Etat st
Pays co
Adresse de messagerie ? (n’utilise pas ‘mail’ en tout cas)
format RTF Exchange ?
Titre title
Société company (aucun résultat avec ‘o’)
Service ou
Bureau physicalDeliveryOfficeName
Assistant(e) secretary (contrairement aux RFC, ne contient pas le DN mais le nom en clair)
Téléphone telephoneNumber
Onglet Organisation
Responsable pas trouvé (ni avec reports, directReports, manager, etc.)
Collaborateurs
Onglet Téléphone/Notes
Bureau telephoneNumber
Bureau 2 telephone-office2
Télécopie facsimileTelephoneNumber
Assistant(e) telephone-assistant
Domicile homephone
Domicile 2 telephone-office2 (oui, comme pour Bureau 2)
Tel. mobile mobile
Récepteur de radiomessagerie pager
Notes info (les $ ne sont pas interpretés comme des retours à la ligne)
Onglet Adresses de messagerie
Adresses de differentes sources : mail, textEncodedORAddress, otherMailbox, proxyaddresses

* le champ “Nom complet” qui sert aussi d’entête de ligne dans l’affichage principal de Outlook, est rempli d’après cet algorithme :
je n’ai pas pu vérifier l’algo suivant au delà des deux premieres conditions (Outlook m’affiche le cn car il est renseigné dans mes objets, et si je renseigne displayName, il sera prioritaire sur le cn)

On utilise (si disponible)
DisplayName (display-name)
Sinon
CommonName (cn | commonName)
Sinon
SurName + GivenName (givenName + sn | surname)
Sinon
SurName (sn | surname)
Sinon
CompanyName (co | organizationName | o)
Sinon
EmailAddress (configurable)
Sinon
dernier composant (tout à gauche) du DN

Voici les requetes LDAP faites par Outlook 2002 SP3 lors d’une recherche (sur prénom=T*) et de l’affichage du résultat, dans l’ordre :
Recherche : (2 requêtes)

SRCH base=”dc=example,dc=com” scope=0 deref=0 sizelimit=1 timelimit=0 attrsonly=0 filter=”(objectClass=*)” attrs=”objectClass”
SRCH base=”dc=example,dc=com” scope=2 deref=3 sizelimit=100 timelimit=65 attrsonly=0 filter=”(&(givenName=T*))” attrs=ALL

Ouverture onglet général : (1 requête)

SRCH base=”uid=45123487,…,dc=example,dc=com” scope=0 deref=3 sizelimit=100 timelimit=0 attrsonly=0 filter=”(objectClass=*)” attrs=”cn cn mail roleOccupant display-name displayName sn sn co o o givenName legacyexchangedn objectClass uid mailnickname title company physicalDeliveryOfficeName telephoneNumber initials postalAddress street postalCode l st ou ou department secretary”

Ouverture onglet Organisation : (2 requêtes et +)
si les champs manager et directReports sont remplis avec des DNs, Outlook exécute ensuite une requête pour chacun de ses DNs, mais je ne l’ai pas vu afficher les informations récupérées, les champs restent désespérément vides.

SRCH base=”uid=45123487,…,dc=example,dc=com” scope=0 deref=3 sizelimit=100 timelimit=0 attrsonly=0 filter=”(objectClass=*)” attrs=”cn cn mail roleOccupant display-name displayName sn sn co o o givenName legacyexchangedn objectClass uid mailnickname title company physicalDeliveryOfficeName telephoneNumber manager”
SRCH base=”uid=45123487,…,dc=example,dc=com” scope=0 deref=3 sizelimit=100 timelimit=0 attrsonly=0 filter=”(objectClass=*)” attrs=”cn cn mail roleOccupant display-name displayName sn sn co o o givenName legacyexchangedn objectClass uid mailnickname title company physicalDeliveryOfficeName telephoneNumber reports directreports”

Ouverture onglet Téléphone/Notes: (1 requête)

SRCH base=”uid=45123487,…,dc=example,dc=com” scope=0 deref=3 sizelimit=100 timelimit=0 attrsonly=0 filter=”(objectClass=*)” attrs=”cn cn mail roleOccupant display-name displayName sn sn co o o givenName legacyexchangedn objectClass uid mailnickname title company physicalDeliveryOfficeName telephoneNumber homePhone telephone-office2 facsimileTelephoneNumber mobile telephone-assistant pager info”

Et enfin ouverture onglet Addresses de messagerie: (1 requête)

SRCH base=”uid=45123487,…,dc=example,dc=com” scope=0 deref=3 sizelimit=100 timelimit=0 attrsonly=0 filter=”(objectClass=*)” attrs=”cn cn mail roleOccupant display-name displayName sn sn co o o givenName legacyexchangedn objectClass uid mailnickname title company physicalDeliveryOfficeName telephoneNumber textEncodedORAddress otherMailbox proxyaddresses msexchhomeservername”

Si vous avez plus d’informations (VERIFIEES), je suis preneur, notamment pourquoi l’onglet Organisation reste vide bien que mon utilisateur test ait le champ manager rempli avec un DN valide, et que l’objet en question liste bien mon utilisateur dans son champ directReports.
Je dis “informations vérifiées” parce que les informations que j’ai trouvées avec l’ami google ne sont pas entièrement vraies (dans mon cas). Ex: l’attribut ‘o’ (organization) doit servir à peupler le champ société, et pourtant dans mon cas ça ne fonctionne pas (seul l’attribut ‘company’ fonctionne).
De plus, je suis persuadé que d’une version de Outlook à l’autre, ça doit varier (sinon ça ne serait pas drôle…)