Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. LDAP
  3. Les schémas
Extrait - LDAP Planification et mise en oeuvre d'un annuaire OpenLDAP
Extraits du livre
LDAP Planification et mise en oeuvre d'un annuaire OpenLDAP Revenir à la page d'achat du livre

Les schémas

Introduction

Les schémas définis dans un annuaire sont un élément essentiel à considérer lors de la création de celui-ci. En effet, ce sont eux qui permettront de déterminer la nature des entrées de l’annuaire. Ce chapitre va donc être consacré à la présentation des schémas de base fournis par OpenLDAP et à l’ajout d’un nouveau schéma à notre serveur OpenLDAP de démonstration pour l’utilisation du programme "sudo".

Les schémas contenus dans OpenLDAP

Après l’installation d’OpenLDAP, il est possible de trouver les fichiers des différents schémas dans le répertoire /etc/openldap/schema comme le montre la figure 7-1 :


[root@ldap01 schema]# ls -lrt 
total 308 
. . . 
-rw-r--r--. 1 root root  3481 Jun 18  2014 inetorgperson.ldif 
-rw-r--r--. 1 root root  3330 Jun 18  2014 dyngroup.ldif 
-rw-r--r--. 1 root root  4842 Jun 18  2014 duaconf.ldif 
-rw-r--r--. 1 root root 12006 Jun 18  2014 cosine.ldif 
-rw-r--r--. 1 root root 20612 Jun 18  2014 core.ldif 
-rw-r--r--. 1 root root  1845 Jun 18  2014 corba.ldif 
-rw-r--r--. 1 root root  2036 Jun 18  2014 collective.ldif 
. . . 
-rw-r--r--. 1 root root 13901 Jun 18  2014 java.schema 
-rw-r--r--. 1 root root  6267 Jun 18  2014 inetorgperson.schema 
-rw-r--r--. 1 root root  3289 Jun 18  2014 dyngroup.schema 
-rw-r--r--. 1 root root 10388 Jun 18  2014 duaconf.schema 
-rw-r--r--. 1 root root 73994 Jun 18  2014 cosine.schema 
-rw-r--r--. 1 root root 20499 Jun 18  2014 core.schema 
-rw-r--r--. 1 root root  8063 Jun 18  2014 corba.schema 
-rw-r--r--. 1 root root  6190 Jun 18  2014 collective.schema 
 [root@ldap01 schema]#
 

Figure 7-1

Il s’y trouve également des fichiers ".ldif"...

Extension de schéma

Il faut savoir que les objets et les attributs LDAP, entre autres choses, sont identifiables par un OID unique et universel géré par l’IANA. Un OID est représenté par une suite de chiffres séparés par un point et organisés sous forme hiérarchique. Ils ont été définis d’après une recommandation de l’IETF et permettent ainsi d’assurer une interopérabilité entre les applications.

OID

Description

0

branche de l’International Telecommunication Union

1

branche ISO

2

branche commune entre l’International Telecommunication Union et ISO

2.5

fait référence au service X500

2.5.4

définition des types d’attributs liés à X500

2.5.6

définition des classes d’objets liées à X500

1.3.6.1

Branche destinée à l’Internet

1.3.6.1.4.1

Branche destinée aux entreprises privées

1.3.6.1.4.1.4203

Branche destinée à OpenLDAP

1.3.6.1.4.1.15953

Branche destinée au programme "sudo"

1.3.6.1.4.1.X

Branche destinée à l’entreprise X

Ainsi, il est donc possible de créer son propre schéma en demandant l’assignation d’un OID de branche de type "1.3.6.1.4.1.X" auprès de l’organisme IANA. Puis il faudra créer la structure d’OID de la figure 7-4 afin...

Ajout du schéma "sudo"

Il a été défini dans le cahier des charges de cette infrastructure LDAP de démonstration, que les utilisateurs de l’annuaire peuvent utiliser des commandes "sudo" dont la configuration sera centralisée et sécurisée directement dans l’annuaire. Et afin de pouvoir y créer ces entrées dans l’annuaire, il faut au préalable charger son propre schéma, car il est inexistant dans le package de base d’OpenLDAP. Pour réaliser cela, il suffira de récupérer un fichier LDIF proposé la plupart du temps sur le site officiel de l’application. Par exemple, ce schéma est délivré dans les sources du code "sudo" situé sur son site officiel (https://www.sudo.ws/download.html#source).

Voici ci-dessous la procédure à suivre avec un fichier schéma LDIF nommé /tmp/testdir/sudo.schema (voir annexe) :

1.

Créer les répertoires : /tmp/testdir et /tmp/testdir/config.

2.

Créer le fichier : /tmp/testdir/test.conf et placer dans ce dossier le fichier sudo.schema précédemment récupéré.

3.

Indiquer dans le fichier test.config la ligne : echo "include /tmp/testdir/sudo.schema" > /tmp/testdir/test.conf.

4.

Exécuter depuis le dossier /tmp/testdir la commande :


[root@ldap01 testdir]# slaptest...

Suppression d’un schéma

Il n’est pas possible de supprimer un schéma en utilisant la configuration dynamique (OLC) via le DIT "cn=config", car cela impliquerait de supprimer tous les attributs de ce schéma présents dans chacune des entrées de l’annuaire. Il est cependant possible de réaliser cette tâche manuellement, mais il faut veiller à posséder une sauvegarde ou une archive de l’annuaire dans ce cas, car si malencontreusement un attribut critique au fonctionnement de l’annuaire venait à être supprimé, cela le rendrait inutilisable. Il n’est donc pas conseillé de supprimer un schéma de l’annuaire OpenLDAP, car il ne gênera en rien le fonctionnement de l’annuaire. Voici les étapes à réaliser dans le cas où cette opération serait nécessaire :

1.

S’assurer que les attributs et les classes d’objets répertoriés dans le schéma ne sont utilisés dans aucune des entrées de l’annuaire.

2.

Stopper l’annuaire et archiver le répertoire : /etc/openldap/slapd.d/cn=config

3.

Se rendre dans le répertoire suivant : /etc/openldap/slapd.d/cn=config/cn=schema

Exemple


[root@ldap01 cn=schema]# pwd 
/etc/openldap/slapd.d/cn=config/cn=schema 
[root@ldap01 cn=schema]# ls -lrt 
total 48 
-rw-------. 1 ldap...