Mise en œuvre des attributs étiquetés
OpenLDAP: contrôler de la visibilité d'un attribut selon son étiquette
Dans certains cas il peut être nécessaire de restreindre l'accès à un sous-ensemble d'étiquettes d'un attribut.
Cela peut répondre à des besoins de:
- confidentialité: le niveau de visibilité diffère d'une étiquette à l'autre, certaines étiquettes devant être restreintes à certains clients seulement;
- compatibilité: une application ne sait pas traiter un attribut multi-valué, le fait de filtrer sur l'étiquette qui la concerne permet de ne lui présenter qu'une seule valeur.
L'exemple de configuration suivant montre comment contrôler la visibilité d'une valeur d'attribut dans OpenLDAP en fonction de son étiquette, à l'aide d'ACLs de type val.regex.
- slapd.conf
# 1) SEULS les membres du groupe "cn=ldap.acl.rpro.read" peuvent lire # les valeurs étiquetées {RPRO} du supannRefId: access to attrs=supannRefId val.regex="^\\{RPRO\\}" by group=cn=ldap.acl.rpro.read,ou=groups,dc=univ-x,dc=fr read by * none # 2) Les membres du groupe "cn=ldap.acl.pstages.read" ne peuvent lire # QUE les valeurs étiquetées {PSTAGES} du supannRefId: access to attrs=supannRefId val.regex="^\\{PSTAGES\\}" by group=cn=ldap.acl.pstages.read,ou=groups,dc=univ-x,dc=fr read by * break access to attrs=supannRefId by group=cn=ldap.acl.pstages.read,ou=groups,dc=univ-x,dc=fr none by * break # Dans les autres cas, autorise la recherche des valeurs par # tout le monde et la lecture par leur propriétaire: access to attrs=supannRefId by self read by * search