• [^] # Re: Pour ou contre

    Posté par . En réponse au journal Références et LDAP. Évalué à 2.

    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