PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LDAP - Berechtigungen für einzelne Dienste möglich ???



LamePL
19.10.06, 21:12
Ich habe mich seit ein paar Tagen dran gemacht und auf meinem System ein LDAP eingerichtet. Soweit so gut, es läuft und erfüllt seine wesentliche Funktion, hat jedoch in der jetzigen Konfiguration einen (recht großen) Nachteil:
Ich kann keine Berechtigungen verteilen. z.B. kann sich jeder im LDAP eingetragene Benutzer alle Dienste nutzen, die LDAP für die Authentifizierung verwenden. Ich würde gerne soetwas wie Gruppen einteilen (FTP, HTTP, Samba, SSH, ...) in denen ein Benutzer nur die Berechtigung für den jeweiligen Dienst hat (und nicht alle anderen auch). Ein Benutzer sollte dabei die Möglichkeit haben in mehreren Gruppen zu existieren.
Wie ist eine solche Aufteilung direkt mit LDAP umsetzbar oder muss ich die einzelnen Benutzer in der jeweiligen Konfigurationsdatei als "Allowed" oder "Denied" deklarieren? Das wäre äußerst umständlich wenn es um die Einrichtung mehrerer Benutzer ginge, die unterschiedliche Dienste nutzen dürfen.

System:
Debian (Sarge), 2.6er Kernel, openLDAP, phpldapadmin, apache2, proftpd, samba 3.0

ThorstenHirsch
19.10.06, 23:08
Prinzipiell gibt's 2 Möglichkeiten:

a) jeder User ist nur 1x im LDAP-Tree, die Berechtigungen auf Anwendungen gehen über die Attribute
b) je Anwendung gibt es 1 Ast, jeder berechtigte User wird 1x pro Anwendung im Tree hinterlegt

Problem an b) ist die ganzen User-Objekte jedes Users synchron zu halten (-> sonst hat er unterschiedliche Passwörter für jede Anwendung).

LamePL
19.10.06, 23:18
Danke für die schnelle Antwort (und das bei der Uhrzeit, Linux-User halt :) ). Angenommen ich entscheide mich für a), wie gebe ich dann rechte mittels welcher attribute... mein ldap kennt z.B. keine Attribute, die proftp nutzen kann... und wie soll ich einem Benutzer mitteilen, daß dieser z.B. nicht für einen Shell-Login oder Apache authorisiert ist. Wie mache ich es den Diensten verständlich, dass diese auch die betreffenden Attribute abfragen? Und wo findet die Überprüfung statt? Muss ich dazu eine neue .schema-Datei anlegen? Wie gehe ich vor?

ThorstenHirsch
20.10.06, 09:42
Keine Ahnung, ich bin Theoretiker. :D

...aber ja, Du musst Dir bei Lösung a) eine entsprechende Person zurecht basteln. Also ich würde von der inetOrgPerson ausgehen und ihr per Schema-Datei ein paar Attribute wie "proftp", "apache" oder "shell" zuweisen, die true oder false sein können ...oder auch ein String, je nachdem welchen Zugangsstatus er hat ("user", "admin" oder sowas z.B.). Wie die Anbindung von proftpd funktioniert - keine Ahnung. Aber praktischerweise solltest Du auf der Seite von proftp anfangen zu schauen, damit Du auf der LDAP-Serverseite nicht irgendwas zusammenstrickst, das Du am Ende gar nicht nutzen kannst.