Problema ldap acl

De Wiki del Nigul
La revisió el 18:58, 22 set 2012 per Pcabot (discussió | contribucions) (Categoria:LDAP)
(dif.) ← Versió més antiga | Versió actual (dif.) | Versió més nova → (dif.)
Salta a la navegació Salta a la cerca

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

Enllaços que en parlen