« Le système d'exploitation GNU-Linux/Les annuaires LDAP » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
→‎Les programmes complémentaires : : rajout des outils en ligne de commande
Ligne 121 : Ligne 121 :
* '''-W''' : demande la saisie du mot de passe du DN précédement indiqué
* '''-W''' : demande la saisie du mot de passe du DN précédement indiqué
* '''-f <fichier LDIF>''' : permet d'indiquer un fichier LDIF
* '''-f <fichier LDIF>''' : permet d'indiquer un fichier LDIF



==== ldapadd ====
==== ldapadd ====
Ligne 131 : Ligne 132 :


Si tout se passe bien, vous devez voir des lignes :
Si tout se passe bien, vous devez voir des lignes :

'''adding new entry "dc=domaine,dc=fr"'''
'''adding new entry "dc=domaine,dc=fr"'''


Ligne 139 : Ligne 141 :


# ldapsearch -x -h localhost -b "dc=domaine,dc=fr"
# ldapsearch -x -h localhost -b "dc=domaine,dc=fr"


==== ldapdelete ====

La commande '''ldapdelete''' permet de supprimer une entrée de l'annuaire LDAP.

{{TODO|rajouter un exemple de la commande ldapdelete}}


==== ldapmodify ====

La commande '''ldapmodify''' permet de modifier une entrée de l'annuaire LDAP.

{{TODO|rajouter un exemple de la commande ldapmodify}}


==== 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.

{{TODO|rajouter un exemple de la commande ldapmodrdn}}


==== ldapcompare ====

La commande '''ldapcompare''' permet de comparer des entrées de l'annuaire LDAP.

{{TODO|rajouter un exemple de la commande ldapcompare}}


==== ldappasswd ====

La commande '''ldappasswd''' permet de changer le mot de passe d'une entrée de l'annuaire LDAP.

{{TODO|rajouter un exemple de la commande ldappasswd}}


==== 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''.

{{TODO|rajouter un exemple de la commande ldapwhoami}}




=== PhpLdapAdmin ===
=== PhpLdapAdmin ===

Version du 14 février 2011 à 14:40

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

Le logiciel libre 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"


ldapdelete

La commande ldapdelete permet de supprimer une entrée de l'annuaire LDAP.

À faire...link={{{link}}}

rajouter un exemple de la commande ldapdelete


ldapmodify

La commande ldapmodify permet de modifier une entrée de l'annuaire LDAP.

À faire...link={{{link}}}

rajouter un exemple de la commande ldapmodify


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.

À faire...link={{{link}}}

rajouter un exemple de la commande ldapmodrdn


ldapcompare

La commande ldapcompare permet de comparer des entrées de l'annuaire LDAP.

À faire...link={{{link}}}

rajouter un exemple de la commande ldapcompare


ldappasswd

La commande ldappasswd permet de changer le mot de passe d'une entrée de l'annuaire LDAP.

À faire...link={{{link}}}

rajouter un exemple de la commande ldappasswd


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.

À faire...link={{{link}}}

rajouter un exemple de la commande ldapwhoami


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/