Ich habe einen LDAP-Server auf einer Linux-Instanz mit AWS EC2 konfiguriert. Bisher habe ich LDAP und phpLDAPadmin erfolgreich für die Zusammenarbeit eingerichtet.
Ich habe Benutzer und Gruppen als „Organisationseinheiten“ erstellt. Ich habe diesen „OUs“ Benutzer und Gruppen hinzugefügt. Jetzt möchte ich den „Benutzern“, die Mitglieder einer „Gruppe“ sind, Zugriff auf bestimmte Teile meines LDAP-Baums gewähren. Das konnte ich bisher nicht konfigurieren …
Mein LDAP-Baum sieht folgendermaßen aus:
+--> dc=www,dc=website,dc=com (3)
---> cn=admin
+--> ou=groups (4)
| ---> cn=admin_users
| ---> cn=app1_users
| ---> cn=app2_users
| ---> cn=basic_users
+--> ou=users (3)
| ---> cn=user1
| ---> cn=user2
| ---> cn=user3
Nehmen wir an, ich habe Benutzer1 + Benutzer2 zur „memberUid“-Liste von „app1_users“ und Benutzer2 + Benutzer3 zur „memberUid“-Liste von „app2_users“ hinzugefügt.
Ich will:
- cn=admin hat volle Rechte/Zugriff auf den Baum
- app1_users kann sich (mit phpLDAPadmin) verbinden und der Gruppe selbst neue Mitglieder hinzufügen
- das gleiche gilt für die Benutzer von app2_users
Ein verbundener Benutzer (auf phpLDAPadmin) sollte nur den Baum (und untergeordnete Unterbäume) sehen, zu dem er gehört.
Hier sind die ACI, die ich ausprobiert habe (die aber offensichtlich nicht funktionierten):
access to attrs=shadowLastChange
by self write
by dn="cn=admin,dc=www,dc=website,dc=com" write
by * read
access to attrs=userPassword
by self write
by dn="cn=admin,dc=www,dc=website,dc=com" write
by anonymous auth by * none
access to dn.base=""
by * read
access to dn.subtree="cn=app1_users,ou=groups,dc=www,dc=website,dc=com"
by group.base="cn=app1_users,dc=www,dc=website,dc=com" write
by dn.base="cn=admin,dc=www,dc=website,dc=com" write
by * none
access to dn.subtree="cn=app2_users,ou=groups,dc=www,dc=website,dc=com"
by group.base="cn=app2_users,dc=www,dc=website,dc=com" write
by dn.base="cn=admin,dc=www,dc=website,dc=com" write
by * none
access to *
by self write
by dn="cn=admin,dc=www,dc=website,dc=com" write
by * read
Stimmt etwas mit meiner Konfiguration nicht?
Antwort1
Bei mir funktioniert folgende Syntax für die Gruppenmitgliedschaft:
access to dn.subtree="cn=app2_users,ou=groups,dc=www,dc=website,dc=com"
by group/groupOfNames/member.exact="cn=app2_users,dc=www,dc=website,dc=com" write
by dn.base="cn=admin,dc=www,dc=website,dc=com" write
by * none
Ich bin nicht sicher, ob das Ihre Probleme lösen wird, weil ich nicht weiß, wie phpLDAPadmin
es funktioniert.
Wenn phpLDAPadmin
es eigene Zugriffskontrollregeln gibt, müssen Sie diese ebenfalls ändern.