Ceci est une ancienne révision du document !
Un serveur d'annuaire avec OpenLDAP
Ce document est la traduction du HowTo présenté à l'adresse https://wiki.ubuntu.com/OpenLDAPServer . Il a été traduit par Sp4rKy.
Introduction
LDAP signifie Lightweight Directory Access Protocol, c'est une version simplifiée du protocol X500. Vous pourrez trouvez une présentation détaillée sur Wikipédia .
Pour expliquer rapidement, toutes les informations sont stockées dans un arbre. Vous devez déterminer l'arborescence des annuaires, ou autrement dit des informations de l'arbre (Directory Information Tree) . Nous allons commencer ici avec un exemple simple contenant seulement 2 noeuds en plus de la racine :
- Le noeud "People" , où seront stockés vos utilisateurs
- Le noeud "Groups" , où seront enregistés vos groupes
Vous devez commencer par déterminer ce que sera la racine de votre LDAP. Par défault, votre arbre peut être déterminé à partir de votre domaine Internet. Si votre domaine est exemple.com , votre racine sera dc=exemple,dc=com .
Installation
Avant tout, installons le daemon du server ldap (sdapd) sur le serveur. Il suffit d'effectuer :
sudo apt-get install slapd ldap-utils
Entrez votre nom de domaine lorsqu'il vous sera demandé puis le mot de passe de l'administrateur .
Seulement quelques changement seront effectués sur la configuration par default. On va commencer par enregistrer le mot de passe dans le fichier de configuration en éditant le fichier /etc/ldap/slapd.conf
.
Attention , n'enregistrez pas votre mot de passe en clair, générez votre mot de passe avec la commande :
sudo slappasswd
On obtient quelque chose dans ce genre :
$ slappasswd New password: Re-enter password: {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m
Cet exemple montre la définition de votre mot de passe en utilisant le mot de passe "secret". (D'après l'implémentation de SSHA , votre résultat peut varier) .
Maintenant éditons le fichier /etc/ldap/slapd.conf
et copiez y la chaine générée .
sudo gedit /etc/ldap/slapd.conf
#Soyez sur d'ajouter ces configurations après la première section "database" suffix "dc=example,dc=com" directory "/var/lib/ldap" rootdn "cn=admin,dc=example,dc=com" rootpw {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m
Remplir LDAP
L' annuaire a été créé lors de l'installation, il est maintenant temps de le remplir. Il sera rempli avec des entrées classiques qui seront compatibles avec la structure d'un annuaire (pour un annuaire partagé), avec les comptes classiques (pour une authentification Web par exemple) et avec les comptes Unix (posix).
L'annuaire LDAP peut etre rempli par des fichiers ldif (ldif signifie ldap directory interchange format). Générez ce fichier d'example (init.ldif) :
dn: dc=example,dc=com objectClass: dcObject objectClass: organizationalUnit dc: example ou: Example Dot Com dn: ou=people,dc=example,dc=com objectClass: organizationalUnit ou: people dn: ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: groups dn: uid=lionel,ou=people,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: lionel sn: Porcheron givenName: Lionel cn: Lionel Porcheron displayName: Lionel Porcheron uidNumber: 1000 gidNumber: 10000 gecos: Lionel Porcheron loginShell: /bin/bash homeDirectory: /home/lionel shadowExpire: -1 shadowFlag: 0 shadowWarning: 7 shadowMin: 8 shadowMax: 999999 shadowLastChange: 10877 mail: lionel.porcheron@example.com postalCode: 31000 l: Toulouse o: Example mobile: +33 (0)6 xx xx xx xx homePhone: +33 (0)5 xx xx xx xx title: System Administrator postalAddress: initials: LP dn: cn=example,ou=groups,dc=example,dc=com objectClass: posixGroup cn: example gidNumber: 10000 displayName: Example group
Dans l'exemple ci dessus, la structure de l'annuaire, c'est à dire un utlisateur et un groupe ont été créés. Dans d'autres exemples vous auriez pu voir le paramètre "objectClass: top" ajouté dans plusieurs entrées, mais c'est le comportement par défaut donc pas besoin de le mettre :)
Maintenant ajoutez vos entrées à LDAP :
- Arretez le daemon :
sudo /etc/init.d/slapd stop
- Supprimer ce qui a été ajouté automatiquement à l'installation :
sudo rm -rf /var/lib/ldap/*
Ajouter les données :
sudo slapadd -l init.ldif
Nous allons pouvoir vérifier que les données ont étées correctement ajoutées avec les outils du paquet ldap-utils
. Pour effectuer une recherche dans les annuaires LDAP il vous suffit de faire :
ldapsearch -xLLL uid=lionel sn givenName cn dn: uid=lionel,ou=people,dc=example,dc=com cn: Lionel Porcheron sn: Porcheron givenName: Lionel
Une rapide explication :
- -x désactive l'authentification SASL
- -LLL empeche l'affichage des informations LDIF
Utiliser votre serveur LDAP
Maintenant que votre serveur est pret et démarré vous pouvez :
- Authentifier vos utilisateurs dans l' annuaire comme expliqué dans la documentation LDAPClientAuthentication
- Authentifier vos utilisateurs via une applications web
- Utiliser l'annuaire comme une base de données pour votre client mail
- Et bien plus encore !!!
Réplication des données LDAP
Le service LDAP peut vite devenir un service hautement critique dans votre system d'information : tout dépend (ou peut dépendre) de LDAP :
- Authentification
- Autorisation
- Mail
- …
Ce serait donc une bonne idée de créer un système redondant. Le mini HOWTO ci dessous vous permettra de le faire .
Introduction
Avec OpenLDAP 2.2 (sur Breezy et Dapper), la réplication est basée sur une communication maitre-esclave.
ATTENTION
Vous devez vous rappeler que les modifications devraient toujours etre faites sur le maitre ! Si vous modifiez un esclave, les modifications seront perdues dès la synchronisation suivante :/
Le maitre
Sur le maitre, vous devez modifier la section "base de donnée" du fichier de configuration /etc/ldap/slapd.conf
pour ajouter une instruction de réplication.
L'exemple suivant montre une replication sur le serveur ldap-2.example.com
avec le Manager user et le mot de passe secret.
Le fichier de log est l'emplacement où les données seront stockées avant d'etre envoyées sur le(s) serveur(s) esclave(s).
replica uri=ldap://ldap-2.example.com:389 binddn="cn=Manager,dc=example,dc=com" bindmethod=simple credentials=secret replogfile /var/lib/ldap/replog
Il ne reste plus qu'a redémarrer votre serveur LDAP :)
Le(s) Esclave(s)
Sur le(s) serveur(s) esclave(s) , il vous suffit d'autoriser votre serveur maitre à mettre à jour la base de donnée LDAP. Pour cela ajoutez les lignes suivantes dans votre /etc/ldap/slapd.conf
à la section base de données :
updatedn cn=Manager,dc=example,dc=com updateref ldap://ldap-1.example.com
Redémarrez votre serveur LDAP (l'esclave).
Liens
- Un GUI pour LDAP (Disponible dans les dépots)