Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

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.

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 .

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

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

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 !!!

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).

  • ldap.1172002565.txt.gz
  • Dernière modification: Le 20/02/2007, 21:21
  • (modification externe)