Afin de déployer un annuaire LDAP au sein d’une entreprise, j’ai pour habitude d’avoir recours à la réplication d’OpenLDAP (version 2.4) en installant un serveur esclave sur chaque réseau secondaire.

La réplication LDAP a de multiples intérêts :

  • décharger votre serveur maître
  • accélérer les opérations de lecture
  • copier votre annuaire sur chaque esclave
  • déployer votre annuaire complet/en partie sur l’ensemble des réseaux

En cas d’opération d’écriture, le serveur esclave peut indiquer au client LDAP le nom du serveur maître afin d’y soumettre son opération.

La configuration à ajouter dans le fichier slapd.conf au niveau du serveur maître master.my.domain est la suivante :

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100

Au niveau de l’esclave slave.my.domain, c’est un peu plus long :

syncrepl rid=1
    provider=ldap://master.my.domain
    type=refreshAndPersist
    searchbase="dc=my,dc=domain"
    scope=sub
    schemachecking=off
    bindmethod=simple
    binddn="cn=repl,dc=my,dc=domain"
    credentials=mypa$$w0rd
    starttls=yestls_key=/etc/openldap/my_domain.key
    tls_reqcert=never
updateref ldap://master.my.domain/

Un identifiant rid distinct est à spécifier pour chaque esclave. La réplication est ici du type refreshAndPersist : à chaque modification de l’annuaire, les esclaves se synchronisent. Il est possible de limite cette synchronisation à un intervalle de temps défini en utilisant le type refresh. L’option searchbase spécifie le DN où débute la réplication : l’annuaire peut être alors répliqué qu’en partie et non en totalité. Reste ensuite la déclaration du compte LDAP utilisé pour la connexion au maître (je vous conseille fortement une connexion par TLS). Côté maître, il faut s’assurer que les ACL permettent l’accès aux données à répliquer. Enfin, la dernière option permet de rediriger les clients sur le maître en cas d’opération d’écriture. Ce n’est pas obligatoire et permet de limiter l’accès en lecture seule à vos clients LDAP.

Pour les options avancées, je vous invite à consulter la documentation à ce sujet.