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