Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
ldap [Le 20/02/2007, 21:16] BastNic crée par déplacement |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>dapper edgy serveur brouillon}} | ||
- | ------ | ||
- | |||
- | ====== 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 [[utilisateurs: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 [[http://fr.wikipedia.org/wiki/LDAP|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 : | ||
- | <code> | ||
- | sudo apt-get install slapd ldap-utils | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | <code> | ||
- | sudo slappasswd | ||
- | </code> | ||
- | |||
- | On obtient quelque chose dans ce genre : | ||
- | <code> | ||
- | $ slappasswd | ||
- | New password: | ||
- | Re-enter password: | ||
- | {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m | ||
- | </code> | ||
- | |||
- | 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 . | ||
- | <code> | ||
- | sudo gedit /etc/ldap/slapd.conf | ||
- | </code> | ||
- | |||
- | <code> | ||
- | #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 | ||
- | </code> | ||
- | |||
- | ===== 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) : | ||
- | |||
- | <code> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | <code> | ||
- | sudo /etc/init.d/slapd stop | ||
- | </code> | ||
- | |||
- | * Supprimer ce qui a été ajouté automatiquement à l'installation : | ||
- | <code> | ||
- | sudo rm -rf /var/lib/ldap/* | ||
- | </code> | ||
- | |||
- | Ajouter les données : | ||
- | <code> | ||
- | sudo slapadd -l init.ldif | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | ldapsearch -xLLL uid=lionel sn givenName cn | ||
- | dn: uid=lionel,ou=people,dc=example,dc=com | ||
- | cn: Lionel Porcheron | ||
- | sn: Porcheron | ||
- | givenName: Lionel | ||
- | </code> | ||
- | |||
- | 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 | ||
- | |||
- | * ... | ||
- | |||
- | 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). | ||
- | |||
- | <code> | ||
- | replica uri=ldap://ldap-2.example.com:389 binddn="cn=Manager,dc=example,dc=com" bindmethod=simple | ||
- | credentials=secret | ||
- | |||
- | replogfile /var/lib/ldap/replog | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | updatedn cn=Manager,dc=example,dc=com | ||
- | updateref ldap://ldap-1.example.com | ||
- | </code> | ||
- | |||
- | Redémarrez votre serveur LDAP (l'esclave). | ||
- | |||
- | |||
- | ===== Liens ===== | ||
- | |||
- | * [[https://wiki.ubuntu.com/OpenLDAPServer|La version Anglaise]] | ||
- | * [[http://www.openldap.org/|OpenLDAP.org]] | ||
- | * [[http://www.tldp.org/HOWTO/html_single/LDAP-HOWTO/|LDAP HOWTO]] | ||
- | * [[http://luma.sourceforge.net/|Un GUI pour LDAP]] (Disponible dans les dépots) |