Ajouter un schéma spécifique

Il est très fréquent de vouloir ajouter ses propres attributs et classes d'objets à un annuaire LDAP, car les classes et attributs standards ne couvrent pas tous les cas fonctionnels. Cette opération peut maintenant être réalisée en "live" sur OpenLDAP, via l'objet cn=schema,cn=config. Il faut pour cela créer un fichier LDIF contenant la définition des attributs à ajouter et les classes d'objets, puis ajouter ce fichier LDIF dans l'annuaire.

Exemple de fichier LDIF :

dn: cn=myschema,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: myschema
olcAttributeTypes: ( 1.3.6.1.4.1.16832.666.1.1
 NAME 'myattr1'
 DESC 'Identifies an attribute 1.'
 EQUALITY caseIgnoreMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
olcAttributeTypes: ( 1.3.6.1.4.1.16832.666.1.2
 NAME 'myattr2'
 DESC 'Identifies an attribute 2.'
 EQUALITY caseIgnoreMatch
 SUBSTR caseIgnoreSubstringMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
olcAttributeTypes: ( 1.3.6.1.4.1.16832.666.1.3
 NAME 'myattr3'
 DESC 'Identifies an attribute 3.'
 EQUALITY caseIgnoreMatch
 SUBSTR caseIgnoreSubstringMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
olcObjectClasses: ( 1.3.6.1.4.1.16832.666.2.1
 NAME 'myobjclass1'
 SUP top STRUCTURAL MUST ( myattr1 ) MAY ( myattr2 $ myattr3 $ description $ ou ) )
olcObjectClasses: ( 1.3.6.1.4.1.16832.666.2.2
 NAME 'myobjclass2'
 SUP myobjclass1 STRUCTURAL MUST ( myattr1 $ myattr2) MAY ( myattr3 $ $o ) )

On voit que l'on va ici ajouter 3 attributs spécifiques : myattri1, myattr2, myattr3. Ils sont tous de type Directory String (cf. Syntaxes). Ces attributs seront utilisés dans deux classes d'objets, dont l'une hérite de l'autre. Dans ce cas, la classe d'objet myobjclass2 va hériter des attributs de la classe myobjclass1.
L'ajout du fichier LDIF peut se faire via la commande :

ldapadd -Y EXTERNAL -H ldapi:/// -f myschema.ldif

Quelques références :

Catégorie