Zope besitzt eine eigene und damit proprietäre Userverwaltung[1]. Um nicht mehrere Benutzerdatenbanken führen zu müssen, erlaubt es der LDAP User Folder[2], die Userverwaltung einem (Open-)LDAP-Server ([3] bis[6]) zu überlassen. Der Linux-Magazin-Artikel[7] beschreibt das Kopplungsmanöver per LDAP User Folder.
Admins, die diese Softwarekombination am Laufen haben, möchten vielleicht gern ihr LDAP-Directory ganz und gar über Zope verwalten (lassen). Der LDAP User Folder als reiner Zope/LDAP-Koppler setzt diesem Ansinnen aber Grenzen. Beispielsweise das Delegieren einzelner Aufgaben an User funktioniert so nicht. Hier kommt der ST LDAP Manager, der auch als LDAP Directory Manager firmiert, ins Spiel. Dieser Beitrag beschreibt Installation, Setup und Funktion anhand eines Beispiels.
Den ST LDAP Manager[9] installieren zu können, setzt eine Verbindung zwischen Zope, Library Python-LDAP, dem LDAP User Folder und dem LDAP-Server voraus, wie sie[7] beschreibt. Das Zusammenspiel der einzelnen Komponenten zeigt Abbildung 1.[7] benutzte einen Workaround, um Python-LDAP zu installieren, der nicht gerade durch Eleganz in Erinnerung bleibt. Zwischenzeitlich ist der Autor auf die Zope-Version 2.6.2 (als Tar-Datei) umgestiegen und hat Python-LDAP aus den Quellen installiert. Der Kasten "Installationsarbeiten" beschreibt die Schritte.
Abbildung 1: Die grüne Verbindung stellt die Kommunikation zwischen den Komponenten dar.
|
1. Die Datei »python-ldap-2.0.0pre19.tar.gz« (oder eventuell eine neue Version) von der Projektseite [8] ist mit »tar xvfz Datei« zu entpacken.
2. Nach dem Wechseln ins Entpack-Verzeichnis ändert man die Datei »setup.py«: In die Zeilen 105 und 113 gehört vor die Module »ldap« und »ldap.schema« ein Hash (»#«). Das Auskommentieren ist nötig, da beide Module nicht mit Python 2.1 klarkommen. Wer Python ab Version 2.3 für Zope benutzt, darf sich diesen Schritt sparen.
3. Dann ist die Datei »setup.cfg« im gleichen Verzeichnis dran, sodass in ihr folgende Library- und Include-Pfade angegeben sind:
library_dirs = /usr/local/lib Zope-Pfad/lib /usr/lib
include_dirs = /usr/local/include Zope-Pfad/include /usr/include /usr/include/sasl
Im absolut anzugebenen » Zope-Pfad« ist der Zope-Server installiert.
4. Der Aufruf » Zope-Pfad/bin/python setup.py build« erzeugt die Python-LDAP-Module und » Zope-Pfad/bin/python setup.py install« installiert sie.
5. Anschließend installiert man den LDAP User Folder wie in [7] beschrieben durch Entpacken der Datei im Zope-Produktverzeichnis » Zope-Pfad/lib/python/Products«. Wie gehabt sollten keine Rindviecher im Produktpfad in Zopes Webinterface erscheinen, was darauf hindeuten würde, dass die Installation von Python-LDAP nicht erfolgreich war.
6. Um den ST LDAP Manager zu installieren, ist dessen Tar-Datei von [9] ebenfalls im Zope-Produktverzeichnis zu entpacken. Nach einem Neustart erscheint auch der ST- DAP-Manager-Eintrag im Produktpfad des Webinterface. Damit ist die Installation abgeschlossen.
|
User Folder und ST LDAP Manager konfigurieren
Es ist ratsam, zunächst ein Testszenario anzulegen, um sich nicht selbst aus Zope auszusperren. Das gelingt beispielsweise durch das Anlegen eines Ordnerobjekts »test«. In diesem Ordner legt der Zope-Admin ein LDAP-User-Folder-Objekt an, um die Rollenverteilung der User in diesem Ordnerobjekt an LDAP zu binden. Das setzt einen funktionierenden und administrierten LDAP-Server voraus.
|
Wer Zope, den LDAP User Folder und (Open-)LDAP bisher im Einsatz hat, kann nach dem Abarbeiten der Anleitung in diesem Artikel in Zope:
- LDAP-Schemata ändern,
-
eine dedizierte Rollenstruktur für LDAP-Admins
festlegen,
- Usern die Änderung ihrer eigenen LDAP-Daten erlauben,
-
Usern die Suche in LDAP-Verzeichnissen nach vorgegebenen
Mustern je nach Rechten einer Usergruppe ermöglichen,
- Formularmasken flexibel anpassen,
- LDAP-Objektklassen managen,
-
fertige Konfigurationsdateien für LDAP-Server
erzeugen.
|
Als Beispiel dient wie in[7] die Firma Cytux, diesmal allerdings um ein paar Mitarbeiter erweitert (Abbildung 2). Abbildung 3 zeigt die Konfigurationseinträge für den LDAP User Folder. Jetzt sollte der Admin die Schemata im LDAP User Folder anpassen, damit die Einträge der LDAP-Verzeichnisse über den LDAP User Folder einstellbar sind.
Wer das Beispiel eins zu eins durchspielen will, muss Gruppen und Mitarbeiter aus Abbildung 2 in das LDAP-Verzeichnis übernehmen - andernfalls natürlich die der eigenen Firma. Die Pflege kann entweder über den LDAP User Folder oder ein anderes LDAP-Admin-Tool außerhalb von Zope geschehen. Anschließend ordnet man die Mitarbeiter ihren Gruppen wie in Abbildung 2 zu.
Abbildung 2: Die neue interne Struktur der aus [7] bekannten Beispielfirma Cytux.
Abbildung 3: Die Konfigurationseinträge für den LDAP User Folder. Die Sternchen verbergen »secret«.
Nun legt der Admin in der Testumgebung ein LDAP-Directory-Manager-Objekt an. Nach dem Auswählen des Objekttyps zur Neuanlage fordert Zope dazu auf, Daten der Struktur des LDAP-Servers in ein Formular einzutragen. Für das Beispiel lauten die Angaben wie in Abbildung 4. Das Speichern mit »Save Changes« beendet die Vorkonfiguration.
Abbildung 4: Das Formular für die Grundkonfiguration von ST LDAP Manager.
Arbeiten mit dem ST LDAP Manager
Jetzt steht im Testordner das neue Objekt »LDAP«. Ein Klick darauf führt wieder zur Konfigurationsseite von ST LDAP Manager. Die Lasche »People« am oberen Fensterrand präsentiert eine Suchmaske, die per Namen nach Mitarbeitern fahndet. Die Daten der gefundenen Person sind per Klick auch änderbar - die nötigen Rechte vorausgesetzt.
Da aber im Moment der Anmeldung noch der Rollenkontext von Zope gültig ist, hat man keinerlei Rechte LDAP-Daten zu ändern. Darum muss der Admin seinen Rollenkontext durch Neu-Anmelden ändern. Hierzu klickt er auf »Login« und bekommt eine Anmelde-Aufforderung. Im Beispiel heißt der Systemadministrator Michael Lips - beim Anmelden erhält er jetzt die Rechte als Administrator. Als Standard definiert der ST LDAP Manager eine Gruppe »System Administrators« als LDAP-Administratorgruppe. Damit besitzt die Rolle jetzt die Schreibrechte auf LDAP-Daten.
Wenn der frisch gebackene Admin jetzt über die »People«-Lasche wieder einen User sucht und findet, wird er einige Links zusätzlich sehen. Abbildung 5 zeigt das Formular für das Ändern der Benutzerdaten. Das System führt automatisch nur zu den Formularen, für die der Bediener Rechte besitzt. Durch einen Klick auf andere Bereiche erscheinen weitere Formularfelder.
Abbildung 5: Die Änderung der Daten eines LDAP-Users ist jetzt möglich.
Der ST LDAP Manager ist so voreingestellt, dass Angehörige der LDAP-Gruppe »System Administrators« andere User, Gruppen und Schemata modifizieren dürfen. Mitarbeiter, die dieser Gruppe nicht angehören, dürfen nur ihre eigenen Daten samt Kennwort ändern.
Über die Lasche »ORG Units« lassen sich ORG-Units nach dem gleichen Schema suchen und bearbeiten. Die recht simple LDAP-Struktur von Cytux nutzt aber praktisch keine komplexe ORG-Units-Struktur. Analog zu den Mitarbeitern und ORG-Units funktioniert es mit Gruppen: »Groups | Browse Groups Tree« fördert beispielsweise die Firmenstruktur nach Gruppen sortiert zu Tage. Per Klick auf die entsprechende Gruppe gelangt man wieder zu den Änderungsmasken - soweit es die Rolle erlaubt.
Hier lassen sich mit dem Button »Select Owner« Administratoren für diese eine Gruppe einrichten, die Gruppendaten bearbeiten dürfen (siehe Abbildung 6). Wenn es darum geht, der Gruppe Mitarbeiter zuzuordnen, ist der Button »Update Membership« gefragt. Das Gleiche bewirkt der entsprechende Button in der Startseite der Lasche »Groups«.
Abbildung 6: Über »Select Owner« lässt sich ein Gruppenadministrator bestimmen, »Update Membership« ordnet der Gruppe die Mitarbeiter zu.