« Le système d'exploitation GNU-Linux/Les annuaires LDAP » : différence entre les versions
Ligne 112 : | Ligne 112 : | ||
=== Les outils en ligne de commande === |
=== 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. |
|||
Pour injecter un fichier LDIF : |
|||
# 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" |
|||
=== PhpLdapAdmin === |
=== PhpLdapAdmin === |
Version du 14 février 2011 à 12:55
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.
Pour injecter un fichier LDIF :
# 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"
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/