Problema ldap acl
Salta a la navegació
Salta a la cerca
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Introducció
LDAP té una complexa política de control d'accés al directori. Una ACL té la següent sintaxi:
olcAccess: {n} to <what> by <who> <access> <control>
- {n} és el número d'ordre
- <what> es al què s'accedeix, un dn en concret o *, per exemple
- <who> evidentment és qui hi pot accedir
- <access> és el tipus d'accés read / write, etc
- <control> pot ser stop / continue / break
Hi pot haver varis "by <who> <access>" a la mateixa ACL (vegeu exemples) i per defecte el <control> és stop, vol dir que quan troba una condició de <what> que es satisfà, s'atura i es deixa de recórrer la llista de ACL.
Valors per defecte de les ACL de LDAP
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=example,dc=com" write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by self write by dn="cn=admin,dc=example,dc=com" write by * read
Què volem aconseguir?
Que diferents administradors tenguin accés només a cada sub-arbre corresponent, i no donar accés a altres usuaris a les contrasenyes.
Aproximació 1
olcAccess: {0}to dn.subtree="ou=gorgblau,dc=nigul,dc=coop" by self write by dn="cn=gorgblau,dc=nigul,dc=coop" write by * read olcAccess: {1}to dn.subtree="ou=matadejonc,dc=nigul,dc=coop" by self write by dn="cn=matadejonc,dc=nigul,dc=coop" write by * read olcAccess: {2}to dn.subtree="ou=lledoner,dc=nigul,dc=coop" by self write by dn="cn=lledoner,dc=nigul,dc=coop" write by * read olcAccess: {3}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=nigul,dc=coop" write by * none olcAccess: {4}to dn.base="" by * read olcAccess: {5}to * by self write by dn="cn=admin,dc=nigul,dc=coop" write by * read
El problema d'aquesta és que cada condició 0, 1, 2, degut al "by * read" donam accés a les contrasenyes a tothom
Aproximació 2
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=nigul,dc=coop" write by * none olcAccess: {1}to dn.subtree="ou=gorgblau,dc=nigul,dc=coop" by self write by dn="cn=gorgblau,dc=nigul,dc=coop" write by * read olcAccess: {2}to dn.subtree="ou=matadejonc,dc=nigul,dc=coop" by self write by dn="cn=matadejonc,dc=nigul,dc=coop" write by * read olcAccess: {3}to dn.subtree="ou=lledoner,dc=nigul,dc=coop" by self write by dn="cn=lledoner,dc=nigul,dc=coop" write by * read olcAccess: {4}to dn.base="" by * read olcAccess: {5}to * by self write by dn="cn=admin,dc=nigul,dc=coop" write by * read
El problema d'aquesta és que cada administrador del sub-arbre no té accés a les seves contrasenyes