- Informatique
- Arduino
- Projets
- Mécanique
Cette doc vous permet de mettre en oeuvre un carnet d'adresses LDAP utilisable avec le client de messagerie Mozilla Thunderbird. Thunderbird fourni un support pour utiliser un carnet d'adresses LDAP nativement. Cependant le support est assez limité quant aux champs que l'on peut utiliser.
Il existe dans les 'schémas' LDAP standard (inetOrgPerson, person, posixAccount, etc…) un certain nombre de champs utilisables mais malheureusement, si l'on se contente d'utiliser ces schémas, une bonne partie des champs ne seront pas visibles sous Thunderbird.
Je vous propose donc à travers cette documentations de vous fournir un schéma compatible ainsi que la procédure
pour mettre en oeuvre votre annuaire LDAP avec tous les champs utilisables. Ces informations sont issues de mes
différentes recherches sur le net Le but de cette documentation n'est que de regrouper dans un seul et
même document les différentes informations.
Le support LDAP intégré à Thunderbird est un support en lecture seule… La gestion de l'annuaire et son alimentation devront devra être faite séparément.
Je donne ici les éléments permettant de mettre en place un arbre LDAP minimum pour la création du
carnet d'adresses. L'optimisation et l'utilisation pour d'autres branches reste possible mais ne sera
pas traité ici La mise en place de l'arbre se fera dans le répertoire /'opt/ldap' afin d'être
indépendant de toute distribution. Le principe de configuration n'étant pas modifié, libre à vous
d'utiliser les chemins d'accès prévus par votre distribution (ex: /etc/ldap, etc…).
Dans le répertoire '/opt/ldap' nous allons retrouver l'arborescence suivante :
Pour monter le serveur, vous allez avoir besoin des schémas suivants :
L'ensemble de ces schémas sont standard et sont fournis avec la distribution d'OpenLDAP, seul 'mozilla_op20'
n'est pas standard car c'est celui que je vais vous fournir
Une fois que vous aurez copié le schéma dans le répertoire '/opt/ldap/schema' vous pourrez créer un fichier de configuration comme suit :
include /opt/ldap/schema/core.schema include /opt/ldap/schema/cosine.schema include /opt/ldap/schema/nis.schema include /opt/ldap/schema/inetorgperson.schema include /opt/ldap/schema/mozilla_op20.schema # Autoriser les connexion en proto v2 allow bind_v2 # Verification de la conformite au schema schemacheck on pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args loglevel 0 ####################################################################### # BDB database definitions ####################################################################### database bdb suffix "dc=lan" checkpoint 32 30 rootdn "cn=ldap.admin,dc=lan" rootpw mot_de_passe directory /opt/ldap/database # Definition de indexes : index objectClass eq
Bien penser à affecter les bons droits au répertoire 'database'. Celui-ci doit appartenir à l'utilisateur 'ldap:ldap' et n'être lisible que par cet utilisateur.
Vous pouvez maintenant démarrer le serveur LDAP.
Sur la base d'un arbre ayant comme dn 'dc=lan' nous allons créer une branche 'ou=addressbook,dc=lan'.
dn: dc=lan objectClass: top objectClass: dcObject objectClass: domain dc: lan description: Local LDAP directory dn: ou=addressbook,dc=lan objectClass: top objectClass: organizationalUnit ou: addressbook description: Carnets d'adresses
Vous pouvez intégrer ce fichier ldif à l'aide de la commande 'ldapadd'.
ldapadd -x -h <ip du serveur> -W -D cn=ldap.admin,dc=lan -f ldap-skeleton.ldif
Voici la structure que doit avoir une entrée de contact afin de remplir tous les champs visibles par le carnet d'adresses de Thunderbird. Je vous propose ici une entrée avec tous les champs remplis avec des valeurs facilement identifiables pour que vous puissiez tester le fonctionnement de votre annuaire.
dn: uid=prenom.nom,ou=lestat,ou=addressbook,dc=lan objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: mozillaAbPersonObsolete cn: prenom nom uid: prenom.nom description: Commentaires facsimileTelephoneNumber: FAX displayName: Prenom Nom givenName: Prenom homePhone: Telephone personel homePostalAddress: Adresse personnelle mobile: Telephone GSM pager: Numero de pager sn: Nom telephoneNumber: Telephone professionel xmozillanickname: Pseudonyme nsAIMid: Identifiant AIM mozillaSecondEmail: Autre adresse mail mozillaHomeLocalityName: Ville mozillaHomeCountryName: Pays homeurl: Page web perso mozillaHomePostalCode: CP mozillaHomeState: Etat o: Societe ou: Travail - Departement postOfficeBox: Adresse professionnelle l: Travail - Ville st: Travail - Etat c: Travail - Pays title: Travail - Titre postalCode: Travail - CP workurl: Travail - Site web custom1: Personnalise 1 custom2: Personnalise 2 custom3: Personnalise 3 custom4: Personnalise 4 mozillaHomePostalAddress2: Adresse personnelle suite mozillaPostalAddress2: Adresse professionnelle suite mail: prenom.nom@email.com
Attention lors de l'utilisation de champs avec des caractères accentués, veuillez penser à encoder les champs du fichier LDIF (en base64) conformément au spécifications de ce format.
Cette entrée donne le résultat suivant sur Thunderbird :
Afin de pouvoir identifier chaque contact séparément, je vous propose la méthode suivante :
Chaque contact sera identifié par un 'uid' unique. Cet uid ne devra pas comporter de signes diacritiques ni d'espaces. Les espaces seront remplacés par des '-' et l'uid sera composé du prénom et du nom du contact. En absence de prénom ou de nom, l'espace vide sera remplacé par un '@'.
Exemples de cas :
Nom complet | UID | DN |
---|---|---|
Jean Dupont | jean.dupont | uid=jean.dupont,ou=addressbook,dc=lan |
Jean de la Tour | jean.de-la-tour | uid=jean.de-la-tour,ou=addressbook,dc=lan |
Jean-Pascal de la Tour | jean-pascal.de-la-tour | uid=jean-pascal.de-la-tour,ou=addressbook,dc=lan |
IKEA | @.ikea | uid=@.ikea,ou=addressbook,dc=lan |
Frédéric | frederic.@ | uid=frederic.@,ou=addressbook,dc=lan |
Ceci n'est qu'une méthode proposée, libre à vous d'en employer une autre.
Une fois que cet annuaire est en place, il va falloir, bien évidemment, l'intégrer à Mozilla Thunderbird
Voici les étapes pour déclarer ce nouvel annuaire : (Le carnet d'adresses s'appellera ici 'ContactsLDAP')
(les autres champs ne sont pas déterminants pour le fonctionnement de l'annuaire)
Lorsque vous tapez une adresses dans la barre d'adresse de la fenêtre de rédaction d'un nouveau message, Thunderbird effectue automatiquement une recherche dans vos carnets d'adresses locaux et LDAP. Cependant dans le cas des carnets d'adresses LDAP, la recherche (interrogation du serveur) s'effectue sur trois critères.
Ceci peut être gênant dans le cas ou le prénom et/ou nom d'une personne contient des accents. Si on prend l'exemple d'un contact qui s'appelle 'Frédéric', lorsque l'on tapera 'fre' la recherche ne donnera rien car il faudrait taper 'fré'.
Pour résoudre ce problème, nous allons profiter du fait que nous utilisons des 'uid' constitués du prénom et du nom d'un contact sans aucun signe diacritique. Le contact 'Frédéric' aura un uid du type 'frederic.xxxxx,ou=addressbook,dc=lan'. Si l'on ajoute le champs 'uid' dans la recherche LDAP, nous pourront sélectionner également les personnes dont le nom ou prénom contient des accents.
Pour ce faire nous allons modifier le fichier 'prefs.js' de Mozilla Thunderbird pour y ajouter la ligne
suivante :
user_pref(”ldap_2.servers.ContactsLDAP.autoComplete.filterTemplate”, “(|(cn=%v*)(uid=%v*)(mail=%v*)(sn=%v*))”);
Attention, vous ne pouvez pas utiliser 'default' pour appliquer ce réglage de manière globale.
Vous devez pour chaque annuaire LDAP défini, ajouter une ligne correspondante.
Ici nous avons utilisé 'ContactsLDAP' qui est le nom de notre annuaire déclaré.
Afin que le carnet d'adresses de Thunderbird affiche correctement les champs correspondants aux adresses, il faut modifier un 'mapping' par défaut de certains attributs LDAP.
Voici les modifications à apporter dans votre fichier de configuration.
user_pref("ldap_2.servers.default.attrmap.HomeAddress", "homepostaladdress,mozillaHomeStreet"); user_pref("ldap_2.servers.default.attrmap.HomeAddress2", "mozillaHomeStreet2,mozillaHomePostalAddress2"); user_pref("ldap_2.servers.default.attrmap.WorkAddress2", "mozillaWorkStreet2,mozillaPostalAddress2");
Lorsque vous avez plusieurs contacts avec un même nom ou prénom (ce qui peut arriver dans les grands annuaires d'entreprise), vous pouvez demander à Thunderbird de vous afficher une colonne supplémentaire contenant des commentaires lors de l'affichage des contacts trouvés.
Pour cela vous devez modifier le fichier 'prefs.js' et y ajouter les deux lignes suivantes :
user_pref("mail.autoComplete.commentColumn", 2); user_pref("ldap_2.servers.DIRECTORYNAME.autoComplete.commentFormat", "Fonction [title]");
Vous remplacerez 'DIRECTORYNAME' par le nom de votre carnet d'adresses LDAP. Pour ce qui est du format, le choix est libre. Cependant les attributs LDAP doivent se trouver entre crochets pour être interprétés.