Association Générale des Utilisateurs de logiciels libres en Côte-d'Or
Rubriques
Notre ami Tux en rodéo sur l'escargot de Bourgogne :-) |
Installation et Utilisation de OpenLDAP sous Debian
Rubrique :
Réseaux
Le : lundi 20 décembre 2004 Par : Tony Visites : 91955 Tags : LDAP, LDIF, OpenLDAP But de ce documentCe document me sert de mémo sur l’installation et l’utilisation d’OpenLDAP sous Debian. Je le diffuse en espérant qu’il puisse servir à d’autres personnes. Pré-requisAvoir installé une Debian de Base :
Présentation rapideUne base LDAP est une base de données où les informations sont enregistrées de manière hiérarchique sous forme d’arbre et non sous forme tabulaire. Une base LDAP est optimisée pour la lecture d’un nombre important de petits enregistrements et convient donc parfaitement pour stocker des annuaires ou des profils utilisateurs. Le système LDAP utilise des schémas (/etc/ldap/schema) pour décrire des objets. Chaque objet contient plusieurs attributs (obligatoire ou facultatifs). Et chaque objet peut hériter des attributs d’un autre objet. Exemple :
Les objets et les attributs sont normalisés pour assurer les échanges entre les logiciels. Il est possible de modifier un schéma en rajoutant des attributs à un objet (déconseillé) ou en créant un nouvel objet (mieux), mais le mieux est de faire valider cette modification par l’IANA. Chaque donnée enregistrée dans la base est identifiée par son DN (Distinguished Name). Ce DN est comparable au chemin complet d’un fichier. Exemple : dc=mondomaine,dc=fr Pour ajouter ou modifier des données dans la base, il est possible d’utiliser le format LDIF. InstallationPaquets à installer :
Ce qui installera en fait :
* J’ai été obligé d’autoriser la norme v2 pour les clients Win 2000. Avec les clients Win NT, il n’y avait pas de problème. ConfigurationLe fichier de configuration est :
La ligne suivante permet d’autoriser l’utilisation de la norme V2 de LDAP.
La ligne suivante donne la racine de la base LDAP :
La ligne suivante qu’il faut ajouter manuellement donne le login de l’administrateur (admin avec le rappel de la racine). Cette ligne et la suivante sont obligatoires pour avoir un accès root sur la base depuis un programme externe (ex : PHP)
La ligne suivante qu’il faut ajouter manuellement donne le mot de passe en clair :
Pour plus de sécurité, il est préférable de générer un mot de passe crypté en utilisant la commande : # slappasswdEnsuite, il faut copier la chaîne cryptée à la place du mot de passe en clair Paramétrage de l’accès en écriture de la base. Il faut indiquer le bon login et la racine de la base : access to attribute=userPasswordParamétrage de l’accès en lecture seule de la base. Il faut indiquer le bon login et la racine de la base : access to *Démarrage du serveur (slapd)Le serveur slapd se démarre d’une manière classique avec la commande :
Le format de fichier LDIFCe format de fichier est utilisé pour faire des imports / exports entre plusieurs bases ou pour modifier ou ajouter des données dans une base. ATTENTION : Il est obligatoire de coder les données en UTF-8. Si lors de l’importation une erreur est rencontrée, celle-ci est abandonnée à l’endroit où elle en était. Fichier LDIF pour ajouter des enregistrementsVoici la structure d’un fichier LDIF dn: <distinguished name Voici un exemple de fichier LDIF (AjoutRacine.ldif) pour créer la racine de l’arbre LDAP : dn: dc=mondomaine,dc=comCommande pour ajouter la racine :
Voici un exemple de fichier LDIF (AjoutFiche.ldif) pour créer une nouvelle fiche : dn: cn=Tony GALMICHE,dc=mondomaine,dc=comCommande pour ajouter la fiche :
Fichier LDIF pour modifier des enregistrementsLes commandes de modification ont la syntaxe suivante : dn: distinguished nameTYPE peu avoir l’une des valeurs suivantes :
Le fichier « ModifFiche.ldif » ci-dessous permet d’ajouter le numéro de téléphone : dn: cn=Tony GALMICHE,dc=mondomaine,dc=comCommande pour modifier la fiche :
Fichier LDIF pour supprimer des enregistrementsLe fichier « SuppFiche.ldif » ci-dessous permet de supprimer une fiche : dn: cn=Tony GALMICHE,dc=mondomaine,dc=comCommande pour supprimer la fiche :
Commande pour rechercher des enregistrementsRechercher les enregistrements contenant un attribut objectclass (donc tous) depuis la racine :
Rechercher les enregistrements contenant un attribut cn dans la branche Eloyes :
Rechercher les enregistrements donc l’attribut dc se termine par gray depuis la racine :
Sauvegarde et Restauration d’une base de données LDAPLa commande suivante permet de générer un fichier .LDIF contenant la base complète :
LDAP BrowserLDAP Browser est un programme en Java, permettant de consulter et de modifier une base LDAP :
Exemples de scripts PHPExemple de script PHP pour se connecter au serveur LDAP$server="localhost";Exemple de script PHP pour rechercher des enregistrements$sr=ldap_search($ds,$dn,"(objectclass=*)");Liste partielle des attributs de la classe « organization »
Liste partielle des attributs de la classe « inetOrgPerson »
Problème rencontréSuite à une coupure brutale du serveur, le serveur ldap n’est pas reparti. Voici le message que j’avais au démarrage en mode débugage : # slapd -d 1En fait, c’était la base ldap qui était corrompue et pour régler ce problème, je l’ai simplement ré-indexée avec ces commandes : # /etc/init.d/slapd stopHistorique des modifications
Article précédent : Les services réseaux : utilités et contrôles
Article suivant : Installation de Winbind pour intégrer Samba dans un Domaine Windows
Forum
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||