Service d`annuaire LDAP

Transcription

Service d`annuaire LDAP
Service d'annuaire LDAP
Stéphane Gill
[email protected]
Table des matières
Introduction
2
Définitions
2
Installation d’OpenLDAP
3
Fichiers de configuration
4
Mise en place du schéma d’annuaire
4
Configuration du serveur OpenLDAP
5
Édition de /etc/openldap/slapd.conf
5
Démarrage du serveur
6
LDIF
6
Rechercher un enregistrement
6
Ajouter un enregistrement
6
Modifier un enregistrement
7
Références
7
Document écrit par Stéphane Gill
© Copyright 2004 Stéphane Gill
Ce document est soumis à la licence GNU FDL. Permission vous est donnée de distribuer et/ou modifier des copies de
ce document tant que cette note apparaît clairement.
Service d'annuaire LDAP
Introduction
Lightweight Directory Access Protocol (LDAP) est un protocole basé sur TCP/IP qui permet de
partager des bases de données sur un réseau interne ou sur Internet. Ces bases de données
sont appelées annuaire électronique (Directory), elles peuvent contenir divers type d’informations,
dont :
•
des données sur les employés d’une entreprise;
•
des données sur des produits;
•
ou des données sur les utilisateurs d’un réseau.
LDAP peut aussi être utilisé d’une manière semblable au service d’informations réseau (NIS,
Network Information Service), afin de permettre aux utilisateurs d’un réseau de s’authentifier. Le
principal avantage du protocole LDAP réside dans la possibilité de réunir les informations d’une
organisation dans un lieu central.
OpenLDAP 2.0 est un implémentation OpenSource des protocoles LDAPv2 et LDAPv3. Ces
protocoles sont basés sur le standard X.500.
Définitions
Dans cette section, la terminologie spécifique à LDAP est présentée.
Entrées
Chaque entrée correspond à une seule unité (objet) dans un répertoire LDAP. Chaque entré est
identifié de manière unique par sont nom distinctif ou DN (Distinguished Name).
Attributs
Les entrées peuvent êtres considérés comme des objets possédant certains attributs. Par
exemple, un employé pourrait être représenté par une entrée LDAP. Parmi les attributs associé
à un employé on pourrait retrouvé le nom, le prénom, l’âge… Il est possible de définir des
attributs obligatoire et optionnel.
© Copyright 2004 Stéphane Gill
Page 2
Service d'annuaire LDAP
Classes d'objet
On regroupe les objets qui sont du même domaine dans une classe d'objet, celle-ci est
caractérisée par des attributs obligatoires ou optionnels et un type. Les types de classe d'objet
sont:
•
type structurel : classes d'objets concrets de l'annuaire (personnes, groupes de
personnes, ...).
•
type auxiliaire : classes d'objets permettant d’ajouter des informations (attributs)
supplémentaires à des classes d'objet de type structurel déjà existantes.
•
type abstraire : classes d'objet qui existent par défaut et qui n'ont pas de signification
concrète, par exemple la classe top est la classe d'objet générique, toutes les autres
classes dérivent de cette classe.
Schémas
Un schéma décrit toutes les règles qu'utilisent le serveur LDAP pour décrire les classes d'objets
(attributs, syntaxe, ...).
Installation d’OpenLDAP
Il existe de nombreux serveurs LDAP, RedHat Linux utilise OpenLDAP v2.0. La dernière version
d’OpenLDAP est disponible sur le site web http://www.openldap.org. Les outils nécessaires sont
répartis dans les paquetages rpm suivant :
•
openldap;
•
openldap-clients;
•
openldap-servers.
Deux démons sont contenus dans le paquetage openldap-servers :
•
/usr/sbin/slapd : serveur autonome ldap;
•
/usr/sbin/slurpd : serveur de réplication ldap.
Outre les paquetages OpenLDAP, RedHat Linux comprend un paquetage nommé nss_ldap. Les
librairies contenues dans ce paquetage permettent d’utiliser LDAP pour l’authentification des
© Copyright 2004 Stéphane Gill
Page 3
Service d'annuaire LDAP
utilisateurs. Il existe des clients ldap graphiques qui supporte la création et la modification
d’entrées. Voici quelques exemples :
•
LDAP Browser/Editor (http://www.iit.edu/~gawojar/ldap);
•
LABE (http://www.savoirfairelinux.com/labe);
•
GQ (http://biot.com/gq/);
•
kldap (http://www.mountpoint.ch/oliver/kldap/);
•
KdirAdm (http://www.carillonis.com/kdiradm/);
•
Directory Administrator (http://diradmin.open-it.org/index.php).
Certains clients LDAP nécessitent l’installation du paquetage php_ldap.
Fichiers de configuration
Les fichiers de configuration sont installés dans le répertoire /etc/openldap/. Ci-dessous figure la
liste des fichiers et répertoire important :
•
/etc/openldap/ldap.conf : Fichier de configuration pour les applications clientes qui utilise
les bibliothèques.
•
/etc/openldap/sldap.conf : Fichier de configuration du démon slapd.
•
/etc/openldap/schema/ : Répertoire contenant le schéma utilisé par le démon slapd.
Mise en place du schéma d’annuaire
Le répertoire /etc/openldap/schema/ contient la définition du schéma utilisé par LDAP. Les
définitions du système d’attribut et de définition de classe d’objet sont placées dans des fichiers
différents. Ces derniers sont référencés dans le fichier /etc/openldap/sldap.conf à l’aide de
l’instruction include. Voici un extrait de ce fichier :
# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.4 2000/08/26
17:06:18
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /usr/share/openldap/schema/core.schema
© Copyright 2004 Stéphane Gill
Page 4
Service d'annuaire LDAP
include /usr/share/openldap/schema/cosine.schema
include /usr/share/openldap/schema/corba.schema
Lorsqu’il est nécessaire d’ajouter d’autres types d’attribut ou de classes d’objets il est préférable
de créer un fichier local.schema au lieu de modifier les fichiers existant. La syntaxe utilisée dans
les fichiers de schéma est complexe et dépasse le cadre du présent chapitre. Voici quand même
un exemple avec la classe « person ».
objectclass ( 2.5.6.6 NAME 'person'
DESC 'RFC2256: a person'
SUP top STRUCTURAL
MUST ( sn $ cn )
MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )
L’instruction MUST permet de définir les attributs obligatoires tandis que MAY définit les attributs
facultatifs. La classe person possède donc 2 attributs obligatoires soit sn (« surname »; nom) et
cn (« common name »; prénom nom). Les attributs userPassword, telephoneNumber, seeAlso et
description sont facultatifs.
Configuration du serveur OpenLDAP
Cette configuration présente de façon succincte les étapes à accomplir pour configurer un
annuaire OpenLDAP.
Édition de /etc/openldap/slapd.conf
Le fichier /etc/openldap/slapd.conf doit être modifier afin de spécifier le domaine et le serveur
corrects. La ligne suffix identifie le domaine pour lequel le serveur ldap fournira les informations.
Par exemple, pour le domaine « ahuntsic-formres.local » la ligne suivante doit apparaître :
suffix "dc=ahuntsic-formres,dc=local"
L’entrée rootdn est le « Nom distinctif » (dn) de l’administrateur de l’annuaire. Par exemple :
rootdn "cn=manager,dc= ahuntsic-formres,dc=local"
Par défaut, le mot de passe de l’administrateur est en clair :
rootpw secret
Afin de créer un mot de passe crypté, il faut utiliser la commande slappasswd et modifier la ligne
rootpw de façon suivante :
© Copyright 2004 Stéphane Gill
Page 5
Service d'annuaire LDAP
rootpw {CRYPT}ijFYNcSNctBYg
Démarrage du serveur
Le démarrage du démon slapd s’affichera à l’aide de la commande :
service ldap start
Après avoir correctement configuré OpenLDAP, il est possible d’utiliser chkconfig ou ntsysv pour
s’assurer du lancement de OpenLDAP au démarrage.
LDIF
LDIF (LDAP Data Interchange Format) est un format de texte ASCII pour les entrées LDAP. Les
fichiers qui échangent des données avec des serveurs LDAP doivent être de format LDIF. Une
entrée LDIF ressemble à l'extrait ci-dessous:
[<id>]
dn: <distinguished name>
<attrtype>: <attrvalue>
<attrtype>: <attrvalue>
<attrtype>: <attrvalue>
Toute entrée peut contenir autant de paires <attrtype>:<attrvalue> que nécessaire. Une ligne
vierge indique que l'entrée est terminée.
Rechercher un enregistrement
La commande ldapsearch permet d’interrogé un serveur LDAP. Par exemple pour visualiser tout
l’annuaire, il faut taper la commande suivante :
ldapsearch –x b ‘dc=ahuntsic-formres,dc=local’ ‘(objectclass=*)’
Ajouter un enregistrement
La commande ldapadd permet d’ajouter des entrées dans un annuaire LDAP. Les entrées à
ajouté doivent être décrites dans un fichier texte utilisant le format LDIF. Voici un exemple de
fichier LDIF :
© Copyright 2004 Stéphane Gill
Page 6
Service d'annuaire LDAP
dn: dc=ahuntsic-formres,dc=local
objectClass: dcObject
objectClass: organization
dc: ahuntsic-formres
o: ahuntsic-formres.local
dn: ou=staff,dc=ahuntsic-formres,dc=local
objectclass: organizationalUnit
ou: staff
dn: cn=Stephane Gill,ou=staff,dc=ahuntsic-formres,dc=local
objectClass: person
cn: Stephane Gill
sn: Gill
userPassword: allo
Exemple d’utilisation de la commande ldapadd :
ldapadd –x –D ‘cn=manager,dc=ahuntsic-formres,dc=local’ –W –f
fichier.ldif
Ajouter des commentaires sur le fichier et une figure de l’arborescence.
Modifier un enregistrement
Deux commandes sont disponibles pour modifier les entrées d’un annuaire :
•
ldapmodify : Modifie les entrées dans un répertoire LDAP;
•
ldapdelete : Supprime des entrées dans un répertoire LDAP.
Références
RedHat Linux 9 : Guide de référence de RedHat Linux, RedHat Linux inc., 2003, 330 p.
OpenLDAP (http://www.funix.org/fr/linux/main-linux.php3?ref=ldap&page=menu)
LDAP (http://www.linuxplusvalue.be/mylpv.php?id=156)
© Copyright 2004 Stéphane Gill
Page 7

Documents pareils

sujet - Mathrice

sujet - Mathrice L’autre technique consite à utiliser les outils en ligne de commande. Pour cela, nous utilisons la machine virtuelle Client : – Lancer la machine virtuelle et ouvrir une session root (password=r00...

Plus en détail