Table des matières

Module unique

Ce module permet de configurer des contraintes d'unicité sur les valeurs stockées par les attributs.

Ces contraintes sont appliquées lors des requêtes d'ajout, de modification et de renommage des entrés.

Doc officielle

Installation

Il faut simplement charger le module unique :

ldapmodify -Y EXTERNAL -H ldapi:/// << EOF
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: unique
EOF

Configuration

Il faut ensuite configurer les contraintes d'unicité pour votre database :

ldapadd -Y EXTERNAL -H ldapi:/// << EOF
dn: olcOverlay=unique,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcUniqueConfig
olcOverlay: unique
olcUniqueURI: ldap:///dc=example,dc=fr?uid?sub?(objectClass=inetOrgPerson)
EOF

L'exemple ci-dessus ajoute une contrainte d'unicité sur les valeurs stockés dans tous l'attribut uid des objets inetOrgPerson dans tout l'arbre LDAP dc=example,dc=fr (scope sub).

Le paramétrage d'une contrainte d'unicité prend ici la forme d'une URI de recherche LDAP dont le résultat pour une valeur donnée ne devra contenir qu'une seule entrée. Dans l'URI, seul le filtre de recherche est facultatif.

Format de paramétrage d'une contrainte :

ldap:///[base dn]?[attribute1,attribut2,...]?scope[?filtre]

Ci-dessous quelques exemples de contraintes applicables sur un annuaire SUPANN :

olcUniqueURI: ldap:///dc=univ,dc=fr?labeledURI?sub
olcUniqueURI: ldap:///dc=univ,dc=fr?supannCMSAffectation?sub
olcUniqueURI: ldap:///dc=univ,dc=fr?supannCMSAppAffectation?sub
olcUniqueURI: ldap:///dc=univ,dc=fr?supannCMSAppId?sub
olcUniqueURI: ldap:///dc=univ,dc=fr?supannCMSAppIdDomaine?sub
olcUniqueURI: ldap:///dc=univ,dc=fr?supannCMSId?sub
olcUniqueURI: ldap:///dc=univ,dc=fr?supannCMSIdEtiquette?sub
olcUniqueURI: ldap:///ou=groups,dc=univ,dc=fr?cn?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=groups,dc=univ,dc=fr?displayName?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=groups,dc=univ,dc=fr?supannRefId?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?eduPersonPrincipalName,eduPersonPrincipalNamePrior?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?eduPersonTargetedID?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?eduPersonUniqueId?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?mail,supannAutreMail?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?supannAliasLogin?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?supannCodeINE?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?supannEmpId?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?supannEtuId?sub?(objectClass=supannPerson)
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?supannFCSub?sub?(|(supannFCPerson)(objectClass=supannPerson))
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?supannRefId?sub
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?uid?sub
olcUniqueURI: ldap:///ou=people,dc=univ,dc=fr?userCertificate?sub
olcUniqueURI: ldap:///ou=structures,dc=univ,dc=fr?ou?sub?(objectClass=supannEntite)
olcUniqueURI: ldap:///ou=structures,dc=univ,dc=fr?supannCodeEntite?sub?(objectClass=supannEntite)
olcUniqueURI: ldap:///ou=structures,dc=univ,dc=fr?supannRefId?sub