« Le système d'exploitation GNU-Linux/Les annuaires LDAP » : différence entre les versions
→Les programmes complémentaires : : rajout des outils en ligne de commande |
|||
Ligne 127 : | Ligne 127 : | ||
La commande '''ldapadd''' permet d'ajouter des entrées dans l'annuaire LDAP. |
La commande '''ldapadd''' permet d'ajouter des entrées dans l'annuaire LDAP. |
||
Prenons par exemple le fichier LDIF suivant qui crée le suffixe (le basedn) de notre annuaire : |
|||
⚫ | |||
# cat cree_arbre.ldif |
|||
dn: dc=domaine,dc=fr |
|||
objectClass: top |
|||
objectClass: dcObject |
|||
objectClass: organization |
|||
dc: domaine |
|||
o: domaine |
|||
⚫ | |||
# ldapadd -x -h localhost -D "cn=admin,dc=domaine,dc=fr" -f cree_arbre.ldif -W |
# ldapadd -x -h localhost -D "cn=admin,dc=domaine,dc=fr" -f cree_arbre.ldif -W |
||
Ligne 134 : | Ligne 144 : | ||
'''adding new entry "dc=domaine,dc=fr"''' |
'''adding new entry "dc=domaine,dc=fr"''' |
||
==== ldapsearch ==== |
==== ldapsearch ==== |
Version du 14 février 2011 à 15:34
Les concepts fondamentaux LDAP
En attendant que cette partie soit écrite, nous invitons le lecteur à se référer à ce tutoriel très complet :
Tutoriel LDAP de Laurent Mirtain
Mise en pratique : OpenLDAP
Installation
# apt-get install slapd ldap-utils
Configuration
La configuration de OpenLDAP se situe dans le fichier /etc/ldap/slapd.conf :
# more /etc/ldap/slapd.conf # Les schémas à inclure à l'annuaire include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema # le fichier contenant le PID du processus pidfile /var/run/slapd/slapd.pid # Le fichier contenant les arguments argsfile /var/run/slapd/slapd.args # La facilité utilisée avec syslog loglevel none # Emplacement des modules modulepath /usr/lib/ldap # Chargment de modules permettant d'étendre les fonctionnalités de OpenLDAP moduleload back_hdb # Limites concernant les recherches sizelimit 500 tool-threads 1 ################################## # Définition du premier annuaire # ################################## # On utilise un stockage basé sur le format de fichier HDB backend hdb database hdb # On définit la racine de l'arbre (on parle de suffixe ou de basedn) suffix "dc=domaine,dc=fr" # Répertoire stockant les données de l'annuaire, dans notre cas, des fichiers au format HDB directory "/var/lib/ldap" # L'administrateur de l'annuaire rootdn "cn=admin,dc=domaine,dc=fr" rootpw motdepasse # en clair ou généré via la commande slappasswd # Des paramêtres d'optimisation du format HDB dbconfig set_cachesize 0 2097152 0 dbconfig set_lk_max_objects 1500 dbconfig set_lk_max_locks 1500 dbconfig set_lk_max_lockers 1500 # Les attributs à indexer en vue d'améliorer drastiquement les recherches index objectClass eq # à commenter ... lastmod on checkpoint 512 30 # contrôle d'accès aux attributs sensibles access to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=domaine,dc=fr" write by anonymous auth by self write by * none # Annuaire avec accès anonyme en lecture seule access to dn.base="" by * read access to * by dn="cn=admin,dc=domaine,dc=fr" write by * read
Après chaque modification de ce fichier, on relance OpenLDAP avec la commande suivante :
# /etc/init.d/slapd restart
Création de l'annuaire
On crée le fichier LDIF qui va initialiser le sommet de l'arbre :
# cat cree_arbre.ldif dn: dc=domaine,dc=fr objectClass: top objectClass: dcObject objectClass: organization dc: domaine o: domaine
On injecte le fichier LDIF dans l'annuaire via la commande ldapadd :
# ldapadd -x -h localhost -D "cn=admin,dc=domaine,dc=fr" -f cree_arbre.ldif -W Enter LDAP Password: adding new entry "dc=domaine,dc=fr"
Pour créer les autres entrées, on peut désormais utiliser PhpLdapAdmin.
Les programmes complémentaires
Les outils en ligne de commande
NB : les commandes suivantes sont fournis par le paquet Debian ldap-utils. Elles disposent des options suivantes :
- -h <adresse IP ou nom> : permet d'indiquer le serveur hébergeant l'annuaire LDAP
- -x : on utilise l'authentification simple et non l'authentification TLS/SSL.
- -b <basedn> : permet d'indiquer l'annuaire à consulter (le basedn ou suffix)
- -D <dn d'un objet> : permet de s'authentifier avec le DN indiqué
- -W : demande la saisie du mot de passe du DN précédement indiqué
- -f <fichier LDIF> : permet d'indiquer un fichier LDIF
ldapadd
La commande ldapadd permet d'ajouter des entrées dans l'annuaire LDAP.
Prenons par exemple le fichier LDIF suivant qui crée le suffixe (le basedn) de notre annuaire :
# cat cree_arbre.ldif dn: dc=domaine,dc=fr objectClass: top objectClass: dcObject objectClass: organization dc: domaine o: domaine
Pour injecter ce fichier LDIF dans notre annuaire :
# ldapadd -x -h localhost -D "cn=admin,dc=domaine,dc=fr" -f cree_arbre.ldif -W
Si tout se passe bien, vous devez voir des lignes :
adding new entry "dc=domaine,dc=fr"
ldapsearch
La commande ldapsearch permet d'interroger l'annuaire LDAP.
# ldapsearch -x -h localhost -b "dc=domaine,dc=fr"
ldapdelete
La commande ldapdelete permet de supprimer une entrée de l'annuaire LDAP.
ldapmodify
La commande ldapmodify permet de modifier une entrée de l'annuaire LDAP.
ldapmodrdn
La commande ldapmodrdn permet de renommer une entrée de l'annuaire LDAP. Cette opération revient à changer le dn (distinguished name) d'une entrée.
ldapcompare
La commande ldapcompare permet de comparer des entrées de l'annuaire LDAP.
ldappasswd
La commande ldappasswd permet de changer le mot de passe d'une entrée de l'annuaire LDAP.
ldapwhoami
La commande ldapwhoami permet de connaître avec quelle identité on est connecté à l'annuaire LDAP, c'est l'équivalent de la commande Unix whoami.
PhpLdapAdmin
PhpLdapAdmin est un logiciel qui permet d'administrer un annuaire LDAP via une interface Web.
Installation :
# apt-get install phpldapadmin
Configuration :
PhpLdapAdmin s'est configuré avec l'annuaire définit par défaut dans OpenLDAP. Si on a changé ce dernier, il faut modifier les deux suivantes dans la configuration de PhpLdapAdmin :
# vi /etc/phpldapadmin/config.php ... $ldapservers->SetValue($i,'server','base',array('dc=domaine,dc=fr')); $ldapservers->SetValue($i,'login','dn','cn=admin,dc=domaine,dc=fr'); ...
À chaque modification de ce fichier, il est préférable de redémarrer apache :
# /etc/init.d/apache2 restart
Accès à PhpLdapAdmin : http://localhost/phpldapadmin/