'

Outils pour utilisateurs

Outils du site


blog:carnet_d_adresses_avec_ldap

carnet d'adresses avec LDAP

Depuis quelques temps, je cherchais à mettre en place un annuaire de mes contacts accessible facilement par le web, mon client de messagerie claws-mail et le webmail Roundcube.

Quand on pense annuaire, le terme « LDAP » vient vite à l'esprit, j'ai donc installé un serveur openldap sur mon serveur. Cette solution me convient parfaitement. Je peux créer et visualiser mes contacts directement dans claws-mail quelque soit la machine sur lequel je l'utilise. Le webmail Roundcube permet également d'accéder au même annuaire.

configuration openldap

Un serveur LDAP de référence ? openldap bien-sûr.

Pour l'installation, rien de plus facile sur une DEBIAN Lenny : aptitude install slapd. Le paramètrage demande peu de modification au fichier fournit par DEBIAN. Les quelques lignes modifées du fichier /etc/ldap/slpad.conf:

# The base of your directory in database #1
suffix          "dc=collilieux,dc=info"

# Indexing options for database #1
index cn,sn,givenname,mail eq

# les ACL
access to dn.subtree="dc=collilieux,dc=info"
        by users write
        by * read

# accès à tout l'annuaire pour admin et sylvain, l'accès anonyme ne donne accès à rien
access to *
        by dn="cn=admin,dc=collilieux,dc=info" write
        by dn="cn=sylvain,dc=collilieux,dc=info" write
#       by * read

TLSCertificateFile /etc/ssl/certs/slapd.pem
TLSCertificateKeyFile /etc/ssl/private/slapd.key

Le serveur LDAP est accessible en local en clair et depuis le monde entier via SSL. Pour cela, il faut activer les services dans le fichier /etc/default/slapd.

# SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///"
SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:///"

Une dernière commande pour relancer le serveur invoke-rc.d slapd restart.

phpldapadmin

phpldapadmin permet d'accéder facilement à l'annuaire via une interface web. C'est avec cet outil que j'ai créé une « organizational unit » appelée « personnes ». Ci-dessus, l'exportation de cette partie de l'annuaire (l'exemple pourra être adapter et importer dans une autre structure) :

dn: ou=personnes,dc=collilieux,dc=info
objectClass: organizationalUnit
objectClass: top
ou: personnes

Tous les contacts seront créés dans cette organisation.

configuration de claws-mail

Pour claws-mail, il faut ajouter un carnet d'adresses : clic droit sur « Serveurs LDAP » et « Nouveau carnet ». Les quelques paramètres à renseigner :

Port : 636 en SSL
Base de recherche : ou=personnes,dc=collilieux,dc=info
DN de connexion : cn=sylvain,dc=collilieux,dc=info

La base de recherche correspond au suffixe de base LDAP + l'organisation.

claws-mail permet ensuite de consulter le carnet d'adresses et de le modifier. L'auto-complétion fonctionne également lors la composition d'un courriel.

configuration de roundcube

Il y a quelques paramètres à modifier dans le fichier main.inc.php.

$rcmail_config['address_book_type'] = 'ldap';
 
$rcmail_config['ldap_public']['collilieux.info'] = array(
  'name'          => 'collilieux.info',
  'hosts'         => array('localhost'),
  'port'          => 389,
  'use_tls'         => false,
  'user_specific' => true,
  'base_dn'       => 'ou=personnes,dc=collilieux,dc=info',
  'bind_dn'       => 'cn=%u,dc=collilieux,dc=info',
  'bind_pass'     => '',
  'writable'      => true,
  'required_fields'     => array("cn", "sn", "mail"),
  'LDAP_rdn'      => 'mail',
  'ldap_version'  => 3,
  'search_fields' => array('mail', 'cn'), 
  'name_field'    => 'cn',
  'email_field'   => 'mail',
  'surname_field' => 'sn',
  'firstname_field' => 'givenName',
  'sort'          => 'cn',
  'scope'         => 'sub',
  'filter'        => '',
  'global_search' => true,
  'fuzzy_search'  => true); 
  • roundcube et le serveur LDAP sont sur la même machine donc inutile d'utiliser SSL.
  • les paramètres basedn et binddn sont évidemment à adapter au cas par cas.
  • la paramètre qui m'a fait perdre le plus de temps est bind_pass, quand on lit le reste de la configuration on est tenté de mettre la valeur %p, j'ai dû lij'ai dûre le code pour trouver.
  • je me pose quelques questions sur la pertinence et surtout la cohérence du rdn par rapport à claws-mail et phpldapadmin, il faudrait creuser.

Comme pour claws-mail, l'annuaire est accessible dans le carnet d'adresses en lecture et modification et il est possible d'utiliser l'auto-complétion lors de la composition d'un message.

conclusion

Cette page regroupe des infos piochées ici et là sur internet, en espérant qu'elles puissent être utiles. Il serait possible d'utiliser d'autres clients compatibles avec LDAP, notamment Mozilla Thunderbird.

Prochaine étape : la même chose pour l'agenda. À suivre …

blog/carnet_d_adresses_avec_ldap.txt · Dernière modification: Le 19/01/2015 à 00:46 par sylvain