Pas de compte par application, ça dépend encore. Par exemple samba nécessite un compte et c'est légitime :
1) Windows ne peut pas s'authentifier sur le LDAP directement (si il peut, mais le plus simple c'est directement avec samba)
2) Samba a ces propres entrées qu'il doit pouvoir accéder
Les groupes, de nouveau c'est les ACLs qui gèrent l'accès (tiré d'un cas réel) :
access to dn.sub="ou=contacts,o=example"
by group.exact="cn=admin,ou=groups,o=example" peername.ip=127.0.0.1 write
by group.exact="cn=contact,ou=groups,o=example" peername.ip=127.0.0.1 write
by group.exact="cn=users,ou=groups,o=example" peername.ip=127.0.0.1 read
by group.exact="cn=admin,ou=groups,o=example" ssf=112 write
by group.exact="cn=contact,ou=groups,o=example" ssf=112 write
by group.exact="cn=users,ou=groups,o=example" ssf=112 read
by * none
Voilà ici j'ai trois groupes (admin, contact, users) chacun ayant leur niveau. Chaque membre du groupe peut accéder en local sans aucune autre limitation, sinon pour tous les autres accès le chiffrement de la communication doit au moins être du tripleDES (ssf=112).
Après tu peux faire des trucs encore plus fun avec les expressions régulières, par exemple j'ai fait un cas suivant :
"ou=contacts,o=example" -> annuaire d'entreprise, tout le monde peut lire et écrire (après il y a encore des attributs réservés au secrétariat (tu peux imposer des ACL par attribut)
"ou=username,ou=contacts,o=example" -> carnet d'adresse par utilisateur
Donc ACL :
access to dn.regex="(.+),ou=([^,]+),ou=contacts,o=example$"
by dn.exact,expand="uid=2,ドルou=users,o=example" write
access to dn.regex="^ou=([^,]+),ou=contacts,o=example$" attrs=entry,children
by dn.exact,expand="uid=1,ドルou=users,o=example" write
by dn.base="cn=xerox,ou=applications,o=example" none
by * break
Et là on voit qu'il y a un compte pour les machines xerox pour qu'elles accèdent au carnet d'adresse sans demander à l'utilisateur de s'authentifier.
Ensuite les groupes que je t'ai montré c'est pour les groupes contenant des "uniqueMember", mais tu peux faire ce que tu veux avec la syntaxe là :
access to ....
by set="[cn=Domain Admins,ou=groups,o=example]/memberUid & user/uid" write
Donc si l'attribut "uid" de l'utilisateur actuellement est dans un attribut "memberUid" de l'objet "cn=Domain Admins,ou=groups,o=example", droit en écriture !
"It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell
[^] # Re: Pour ou contre
Posté par Etienne Bagnoud . En réponse au journal Références et LDAP. Évalué à 2.
1) Windows ne peut pas s'authentifier sur le LDAP directement (si il peut, mais le plus simple c'est directement avec samba)
2) Samba a ces propres entrées qu'il doit pouvoir accéder
Les groupes, de nouveau c'est les ACLs qui gèrent l'accès (tiré d'un cas réel) :
access to dn.sub="ou=contacts,o=example"
by group.exact="cn=admin,ou=groups,o=example" peername.ip=127.0.0.1 write
by group.exact="cn=contact,ou=groups,o=example" peername.ip=127.0.0.1 write
by group.exact="cn=users,ou=groups,o=example" peername.ip=127.0.0.1 read
by group.exact="cn=admin,ou=groups,o=example" ssf=112 write
by group.exact="cn=contact,ou=groups,o=example" ssf=112 write
by group.exact="cn=users,ou=groups,o=example" ssf=112 read
by * none
Voilà ici j'ai trois groupes (admin, contact, users) chacun ayant leur niveau. Chaque membre du groupe peut accéder en local sans aucune autre limitation, sinon pour tous les autres accès le chiffrement de la communication doit au moins être du tripleDES (ssf=112).
Après tu peux faire des trucs encore plus fun avec les expressions régulières, par exemple j'ai fait un cas suivant :
"ou=contacts,o=example" -> annuaire d'entreprise, tout le monde peut lire et écrire (après il y a encore des attributs réservés au secrétariat (tu peux imposer des ACL par attribut)
"ou=username,ou=contacts,o=example" -> carnet d'adresse par utilisateur
Donc ACL :
access to dn.regex="(.+),ou=([^,]+),ou=contacts,o=example$"
by dn.exact,expand="uid=2,ドルou=users,o=example" write
access to dn.regex="^ou=([^,]+),ou=contacts,o=example$" attrs=entry,children
by dn.exact,expand="uid=1,ドルou=users,o=example" write
by dn.base="cn=xerox,ou=applications,o=example" none
by * break
Et là on voit qu'il y a un compte pour les machines xerox pour qu'elles accèdent au carnet d'adresse sans demander à l'utilisateur de s'authentifier.
Ensuite les groupes que je t'ai montré c'est pour les groupes contenant des "uniqueMember", mais tu peux faire ce que tu veux avec la syntaxe là :
access to ....
by set="[cn=Domain Admins,ou=groups,o=example]/memberUid & user/uid" write
Donc si l'attribut "uid" de l'utilisateur actuellement est dans un attribut "memberUid" de l'objet "cn=Domain Admins,ou=groups,o=example", droit en écriture !
"It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell