PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LDAP Zugriffsrechte auf Gruppen vergeben



jal073
09.03.04, 18:18
Hallo,

ich möchte einer Gruppe von Benutzern schreibzugriff auf einen Teil des LDAP Baumes geben, welche Art von Gruppe muß ich dafür erstellen ?
Und wie sieht der ACL Eintrag aus, damit die Mitglieder dieser Gruppe dann auch schreibrechte bekommen ?


Grüße

Andreas

[WCM]Manx
09.03.04, 18:34
Hi!

[x] konkretere Angaben wünschenswert

"man slapd.access" ist ein Einstieg,
>> Dieser Thread << (http://www.openldap.org/lists/openldap-software/200209/msg00426.html) ist sehr interessant

Grüße

Manx

jal073
09.03.04, 19:37
Hallo,

mein LDAP-Baum sieht so aus:

c=de (Country)
o=eval (Organisation)
-ou=I1 (Organisational Unit)
--ou=group (Organisational Unit)
---cn=Admins (PosixGroup)
--ou = User (Organisational Unit)
---cn = User1 (PosixAccount, SambaSamAccount)
---cn = User2 "

Was ich jetzt erreichen will ist, das alle Mitglieder der Gruppe Admins auf die OU I1 schreibend zugreifen können. Damit wenn jetzt ein neuer Benutzer User3 erstellt wird, er nur noch der Gruppe Admins zugefügt werden muß um ebenfalls Schreibrechte auf I1 bekommt.

Ich hatte versucht mit der Regel:

access to dn="ou=I1,o=eval,c=de"
by group="cn=Admins,ou=group,ou=I1,o=eval,c=de" write
by self write
by * auth

das ganze zu realisieren.User1 ist Mitglied der Gruppe Admins und kann zwar bei sich Änderungen machen, jedoch nicht bei User2.

Wenn ich den andreren Thread richtig verstanden habe, ging es darum, das der Benutzer nur auf sich und darunter schreiben darf.

Grüße

Andreas

[WCM]Manx
10.03.04, 11:12
... o.k, Ldap ACLs sind für mich auch mehr oder weniger ein spanisches Dorf ;) aber ich schau mir's an, interessiert mich auch!

Noch eine Frage:
Mitglieder der Gruppe Admins sollen auf I1 schreibend zugreifen können.
Auf wirklich ALLES unter I1?
Sprich auch auf die Passwörter der anderen Admins z.B.?

Grüße

Manx

[WCM]Manx
10.03.04, 16:08
Hi!

Erster Lösungsansatz:

So wie Du Dir das vorstellst, hab' ich's nicht geschafft, da mir aber bei weitem noch nicht alles klar ist, könnte es einfacher auch noch funktionieren.

Ich gehe davon aus, dass sich die Benutzer (Admins) per DN (cn=Admin1,ou=User,ou=I1,o=eval,c=de") am LDAP anmelden. Nach diesem DN greifen auch die ACLs.

Problem (IMHO ;) )
Admins und User unterscheiden sich nicht im DN , bis auf das erste "cn=..."
Admin: cn=Admin1,ou=User,ou=I1,o=eval,c=de
User: cn=User1,ou=User,ou=I1,o=eval,c=de

Möglichkeit 1: (nicht getestet!)
zur Unterscheidung den LDAP-Tree im User-Zweig untergliedern:
c=de (Country)
o=eval (Organisation)
-ou=I1 (Organisational Unit)
--ou=group (Organisational Unit)
---cn=Admins (PosixGroup)
--ou = User (Organisational Unit)
---cn=admins
----cn=Admin1 (dn: cn=Admin1,cn=admins,ou=User,ou=I1,o=eval,c=de)
---cn=users
----cn = User1 (PosixAccount, SambaSamAccount)
----cn = User2 (dn: cn=User2,cn=users,ou=User,ou=I1,o=eval,c=de)

Somit wärte IMHO eine Unterscheidung nach DN möglich und eine ACL per regex stetzbar.

Möglichkeit 2: (Kurztest, Verbesserungen möglich ;) )

Du legst im User Zweig ein neues Objekt:


dn: cn=acl,ou=User,ou=I1,o=eval,c=de
objectClass: top
objectClass: groupOfUniqueNames
cn: acl
uniqueMember: cn=Admin1,ou=User,ou=I1,o=eval,c=de
uniqueMember: nach belieben mit weitern Admin DNs ergänzen

in dieses Objekt werden die Benutzer eingetragen die Schreibzugriff bekommen

die ACLs für meinen LDAP Tree, der folgendermaßen ausschaut:


dc=manx,dc=homelinux,dc=org
-ou=Benutzer
--cn=acl # obiger Eintrag mit uniqueMembers
--uid=user1
--uid=user2
usw.
-ou=Gruppen
--cn=domadmins
--cn=domusers
usw.
-ou=Computer
-ou=idmap
-cn=manager,... # der LDAP-Root, Admin
-cn=nss,... # ein Benutzer für NSS-Anfragen, testweise (kommt vielleicht noch weg)
-sambaDomainName



# 1.)
access to dn.subtree="dc=manx,dc=homelinux,dc=org"
attrs=userPassword,sambaNTPassword,sambaLMPassword
by dn="cn=manager,dc=manx,dc=homelinux,dc=org" write
by self write
by anonymous auth
# 2.)
access to dn.one="ou=Benutzer,dc=manx,dc=homelinux,dc=org"
by group/groupofuniquenames/uniquemember="cn=acl,ou=Benutzer,dc=manx,dc=homelinux,dc=org" write
by dn="cn=nss,dc=manx,dc=homelinux,dc=org" read
by users read
# 3.)
access to dn.regex="ou=(.*),dc=manx,dc=homelinux,dc=org"
by users read
# 4.)
# für anonymen access
#access to * by * read

ad 1.)
Nur der LDAP-Admin (manager) hat Zugriff auf Passwörter

ad 2.)
auf die Ebene Benutzer und eine darunter haben die, in der Ojektklasse "groupOfUniqueNames" aufgeführten Benutzer Schreibzugriff (auf Passwörter nicht!), mein nss-Benutzer (der noch weg kommt) darf lesen, denn die authentifizierten Benutzer dürfen ja auch lesen.

ad 3.)
Authentifizierte Benutzer dürfen überall lesen, das mit ou= beginnt (und darunter). Somit sehen meine Benutzer nichts vom cn=manager, nichts vom cn=nss und nicht den sambaDomainName (also die erste Ebene)

ad 4.)
ist klar ;)

Grüße

Manx

PS: LDAP ACL Gurus mögen mich steinigen, Verbesserungen, Kritik erwünscht

jal073
12.03.04, 15:12
Hallo Manix,

sorry das ich mich jetzt erst wieder melde, mußte was für meinen Geldbeutel tun ;) .

Der Lösungsansatz 2 entspricht genau dem was ich haben wollte, eine Gruppe von "Göttern" im Teilbaum I2. Natürlich gibt es dann warscheinlich noch weitere Gruppen, die nur einzelne Attribute ändern dürfen.

Vielen Dank für die Hilfe.

Grüße

Andreas