Verteilte Administratiorn und LDAP-ACLs

Ich habe vor, die Benutzerverwaltung des UCS von mehreren Benutzern durchführen zu lassen. Es soll für jede Benutzergruppe einen Container geben, der dann von dem jeweiligen Container-Admin gepflegt wird. Hier ein Beispiel für den Admin ‘user1’ im Container ‘cn=users’ und das zu verwaltende Objekt ‘user2’ im Container ‘cn=users2’:

Vorgehensweise:
[ul]
[li]Benutzer ‘user1’ in ‘cn=users,$ldap_base’ angelegt[/li]
[li]‘user1’ das UDM-Modul ‘users’ frei geschaltet[/li]
[li]neuen Standard-User-Container angelegt:
‘cn=users2,$ldap_base’[/li]
[li]Benutzer ‘user2’ in ‘cn=users2,$ldap_base’ angelegt[/li][/ul]

Folgende ACL in die slapd.conf direkt am Anfang der ACLs eingetragen:

[quote]access to dn=“cn=users2,dc=iku-systems,dc=de”
by dn.base=“uid=user1,cn=users,dc=iku-systems,dc=de” none[/quote]

Test:

[quote]root@ox7:~# ldapsearch -x -D “uid=user1,cn=users,$ldap_base” -w ** -b cn=users2,$ldap_base

extended LDIF

LDAPv3

base <cn=users2,dc=iku-systems,dc=de> with scope subtree

filter: (objectclass=*)

requesting: ALL

search result

search: 2
result: 32 No such object[/quote]

Fehler: Wenn sich ‘user1’ num im UDM anmeldet, kann er nach wie vor die Objekte und deren Attribute unter ‘cn=users2’ sehen.

Hallo,

das Verhalten ist so, wie Sie es schildern, durchaus korrekt!
Gern werde ich es Ihnen kurz erläutern:
Die verwendete LDAP ACL verbietet in dieser Form lediglich den Zugriff auf den Container “cn=users2,dc=iku-systems,dc=de” nicht auf evt. vorhandene leaf objects (in diesem Fall die User selbst). Sie testen Ihre Anpassungen mit ldapsearch -b auf eben diesen Container, was auch erwartungsgemäß den Zugriff verweigert.
In der UMC wird hingegen das Benutzerobjekt direkt angesprochen - dies ist per ACL weiterhin erlaubt.

Konkret würden Sie vermutlich so etwas verwenden wollen:

access to dn.subtree="cn=user2,dc=iku-systems,dc=de" by dn.base="uid=user1,cn=users,dc=iku-systems,dc=de" none by * none break
dn.subtree sorgt hier dafür, dass auch der Zugriff auf die leaf objects eingeschränkt wird. Bitte beachten Sie in diesem Zusammenhang auch die letzte Zeile “by * none break”, die dazu führt, dass bei jeder von user1 abweichenden Authentifizierung die ACL ohne Bearbeitung übersprungen und mit der nächsten ACL weitergemacht wird.
Ansonsten wäre durch Ihre ACL jeglicher Zugriff verboten.

Ich hoffe ich konnte Ihnen hiermit helfen!

Mit freundlichen Grüßen,
Tim Petersen

So hat es prinzipiell funktioniert.
Eine kleine Erweiterung und die Anpassung der Templates für die slapd.conf hat nun zum gewünschten Ergebnis geführt.
Danke.

Mastodon