Bonjour à tous !

Je gère tous mes utilisateurs avec LDAP.

Je souhaiterais construire les règles de lecture suivante :
1) Seul admin peut modifier les mots de passe,
2) Les utilisateurs peuvent modifier leurs données personnelles,
3) Les utilisateurs du groupe <grp1> peuvent lire les entrées ayant un attribut ou=<grp1>
4) Les utilisateurs du groupe <grp2> peuvent lire les entrées ayant un attribut ou=<grp2>

Une entrée peut avoir un attribut ou=<grp1> et ou=<grp2>. Un utilisateur peut être dans les deux groupes.

Voici donc mes ACL (ou plutôt le ldif correspondant) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
dn: olcDatabase={1}hdb,cn=config
changetype: modify
delete: olcAccess
-
add: olcAccess
olcAccess: to dn.base="" by * read
-
add: olcAccess
olcAccess: to attrs=userPassword by dn="cn=admin,dc=xxx,dc=yyy" write by anonymous auth by * none
-
add: olcAccess
olcAccess: to attrs=@attributspersos by self write by * break
-
add: olcAccess
olcAccess: to * by self read by * break
-
add: olcAccess
olcAccess: to dn.subtree="ou=users,dc=xxx,dc=yyy" filter=(ou=grp1) by set="[cn=grp1,ou=groups,dc=xxx,dc=yyy]/memberUid&user/uid" read by * break
-
add: olcAccess
olcAccess: to dn.subtree="ou=users,dc=xxx,dc=yyy" filter=(ou=grp2) by set="[cn=grp2,ou=groups,dc=xxx,dc=yyy]/memberUid&user/uid" read by * break
-
add: olcAccess
olcAccess: to * by dn="cn=admin,dc=xxx,dc=yyy" write by * none

Mais cela ne marche pas ! L'authentification réussi, admin a bien tous les droits, mais malgré mon appartenance aux deux groupes, je ne vois aucune entrée !

Est-ce que vous voyez une erreur ?

Merci par avance !