18 Mai 2011

Annuaire LDAP et Thunderbird : Personnalisation

Category: Protocoles et services réseauxcduv @ 02:22

L'utilisation d'annuaire de type LDAP dans Thunderbid requiert quelques petites manipulations si l'on veut correctement tirer parti des avantages d'un annuaire.

Voici un des comportements de Thunderbird qui pose soucis :
Par défaut, il recherche dans les attributs cn, mail, sn (cf. fichier "comm-1.9.2mailnewsaddrbookpublicnsILDAPAutoCompleteSession.idl") : soit le "nom commun", l'adresse de courriel et le nom de famille.

Si l'on veut chercher des entrées d'annuaire selon d'autres critères il faut modifier le paramètre "autoComplete.filterTemplate"
Pour ma part j'opte pour une recherche sur, en sus des précédents attributs, le prénom (givenName), le nom d'affichage (displayName) et le poste (title) avec le réglage suivant (où LdapDirectoryName est l'ID de l'annuaire configuré) :

user_pref("ldap_2.servers.LdapDirectoryName.autoComplete.filterTemplate", "(|(cn=*%v*)(displayName=*%v*)(givenName=*%v*)(mail=*%v*)(sn=*%v*)(title=*%v*))");

Tant qu'on est dans les annuaires LDAP et Thunderbird, notez que si vous utilisez des attributs LDAP acceptant plusieurs valeurs (contraire d'un attribut SINGLE-VALUE), Thunderbird n'affichera que la première valeur.

Exemple avec le groupe suivant :

dn: cn=grp_test,ou=Groups,dc=domain,dc=local
objectClass: groupOfNames
objectClass: top
cn: grp_test
cn: Groupe de test
member: uid=user1,ou=Users,dc=domain,dc=local
mail: test-group@domain.local
Dans lequel, mon groupe "cn=grp_test,ou=Groups,dc=domain,dc=local" possède un genre d'identifiant, faisant partie du ("grp_test") mais également un nom un peu plus parlant ("Groupe de test"). Or il apparaîtra (dans un résultat de recherche ainsi que dans un champ de destinataire de courriel) sous "grp_test" car c'est la première valeur de l'attribut cn (qui fait partie du DN). Pour y remédier il suffit de faire passer le joli cn avant le cn moche :
dn: cn=grp_test,ou=Groups,dc=domain,dc=local
objectClass: groupOfNames
objectClass: top
cn: Groupe de test
cn: grp_test
member: uid=user1,ou=Users,dc=domain,dc=local
mail: test-group@domain.local

Sachez également que pour ce genre de problème d'affichage, il est possible dire à Thunderbird d'utiliser d'autres attributs pour afficher les résultats avec les paramètres "attrmap.DisplayName" et "autoComplete.nameFormat" valant respectivement displayName et [displayName]

Par exemple, pour afficher le poste et la société d'une personne en plus de son displayName il suffit de définir "autoComplete.nameFormat" comme suit :

user_pref("ldap_2.servers.LdapDirectoryName.autoComplete.nameFormat", "[displayName] [[title]] ([o])");
title est le poste et o l'organisation, ce qui donnera :
Machin BIDULE [Responsable marketing] (World Company) <m-bidule@worldcorp.com>
(Oui, l'adresse e-mail est toujours rajoutée, à la fin, sous cette forme : c'est requis par la syntaxe des entêtes des courriels)

Étiquettes : , , , , ,

2 Réponses à “Annuaire LDAP et Thunderbird : Personnalisation”

  1. PUJOS a dit:

    Bonjour,

    Vous semblez compétent en ldap et Thunderbird. J'ai un petit souci. J'aimerais créer un groupe et pour éditer mon ldap j'utiliser phpldapadmin et ne sait comment faire et surtout j'aimerais pouvoir envoyer un mail à tout un groupe d'un coup.
    Pour le moment j'utilise votre astuce de sélection de plus de champs et j'ai mis en title le nom d'un groupe et j'affiche donc toutes les personnes ayant le même title comme faisant parti d'un groupe et sélectionne leurs adresses comme cela mais je suis sûr que vous avez une astuce pour mieux faire.

    Cordialement,

    Gérard PUJOS

  2. cduv a dit:

    Les groupes que je créer dans mon annuaire ont une adresse e-mail qui correspond à un alias au niveau du serveur de messagerie, En tapant Groupe Bidule, Thunderbird me propose un résultat avec une seule adresse e-mail (groupe_bidule@domaine.tld) et j'envoie donc l'e-mail à destination de cette adresse.
    Thunderbird reste un client de messagerie : chaque ligne de destinataire ne peut (à ma connaissance) pas se transformer en plusieurs destinataires (une ligne = un destinataire).
    Désolé mais je ne connais pas de solution pour faire ce que vous évoquer.

Laisser une réponse