Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ldap [Le 21/02/2007, 01:26] BastNic |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>dapper edgy serveur réseau 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]] puis remis (un peu) en page et déplacé par [[utilisateurs:bastnic]]. | ||
- | |||
- | ===== 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> | ||
- | |||
- | On vous demandera votre mot de passe administrateur et votre nom de domaine. Renseignez les. Parfois on ne vous demandera que le mot de passe et on ne vous demandera rien concernant le nom de domaine car l'installeur récupère directement le nom de domaine de la machine. Si vous souhaiter renseigner ces champs faites : | ||
- | <code> | ||
- | sudo dpkg-reconfigure slapd | ||
- | </code> | ||
- | |||
- | Mais seulement quelques changement seront effectués sur la configuration par défaut. Tout le reste va se jouer dans le fichier ''/etc/ldap/slapd.conf''. | ||
- | |||
- | Nous allons commencer par enregistrer le mot de passe administrateur (de LDAP) dans le fichier de configuration en éditant ce fichier. Ce serait une folie de vouloir enregistrer votre mot de passe en clair donc nous allons générer votre mat de passe en chiffré avec la commande : | ||
- | <code> | ||
- | sudo slappasswd | ||
- | </code> | ||
- | |||
- | On obtient quelque chose dans ce genre : | ||
- | <code> | ||
- | $ sudo 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> | ||
- | |||
- | Il va falloir ajouter à la main quelques paramètres très importants. Notamment ces quatre lignes là, à mettre après la section "database" donc vers les lignes 70 et quelques. | ||
- | <code> | ||
- | suffix "dc=example,dc=com" | ||
- | directory "/var/lib/ldap" | ||
- | rootdn "cn=admin,dc=example,dc=com" | ||
- | rootpw {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m | ||
- | </code> | ||
- | |||
- | Si jamais vous voulez activer le support de la version précédente d'LDAP, décommentez l'option (ligne 8) : | ||
- | <code>allow bind_v2</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 !!! | ||
- | |||
- | De manière plus concrète, il existe des solutions simples à installer et qui vous permette un excellent accès à votre annuaire, que ce soit en visualisation comme en création/édition. | ||
- | |||
- | === phpLDAPadmin === | ||
- | |||
- | Accessible via un navigateur depuis n'importe où, il est l'un des meilleurs moyens d'accéder à ses données. Voyons comment l'installer. | ||
- | |||
- | Admettons que vous avez déjà une base apache/php5 installée. | ||
- | <code>sudo apt-get install php5-ldap phpldapadmin</code> | ||
- | |||
- | Et on y accède via [[http://votre_domaine.com/phpldapadmin/]] | ||
- | |||
- | ===== 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) |