informatique:reseau:ldap:unique

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

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

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]
  • [base dn] : base DN de la recherche
  • [attribute1,attribut2,…] : noms des attributs (séparés par des virgules) sur lesquels la contrainte s'applique
  • [scope] : porté de la recherche : base, one ou sub
  • [?filtre] : filtre de recherche facultatif permettant de limiter sur quels objets s'applique la contrainte

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
  • informatique/reseau/ldap/unique.txt
  • Dernière modification : 2022/09/27 08:51
  • de bn8