Endlich komme ich gegen Ende der Woche mal wieder dazu etwas über meine Arbeit an TYPO3 zu bloggen. Die letzte Zeit hatten wir ziemlich damit zu kämpfen, unsere TYPO3-Instanz an das universitäte LDAP anzubinden.
Ausgangslage: Bei uns an der Universität ist ein LDAP-Verzeichnis aktiv, dass die Accountdaten für sämtliche Mitglieder der Universität speichert. Es wäre also sinnvoll auch die Authentifzierung für unser TYPO3 darüber zu machen, da wir uns eine eigene Passwort- und Benutzerverwaltung innerhalb TYPO3 damit zumindest erleichtern können. Auch wenn sie nicht ganz wegfällt. Problematisch dabei ist, dass das LDAP wie so häufig historisch gewachsen ist und das LDAP-Schema dadurch nicht gerade komfortabel.
Weg und Lösung: Wir begannen als Basis mit der verbreiteten eu_ldap Extension, die unseren Anforderungen relativ nahe kam. Trotzdem waren noch einige Anpassungen nötig. Zuerst ist es bei uns so, dass die Benutzer über eine eindeutige ID identifiziert werden, wir aber den Login über den leichter zu merkenden E-Mail-Alias (vorname.nachname) haben wollten. Deshalb mussten wir in eu_ldap einen Zwischenschritt einbauen, der zuerst den Benutzer mit dem Alias gegen das LDAP-Verzeichnis authentifziert, dann die eindeutige ID ermittelt und mit dieser im weiteren Verlauf die Gruppenzuordnung herstellt.
Leider konnten wir nicht dem Benutzer einfach ein Attribut zuweisen, sondern mussten den Weg gehen für das TYPO3 eine neue Gruppe (ou=typo3) anzulegen, in der die IDs der erlaubten Benutzer (memberUID) geschrieben werden. Über die Einschränkung nur Benutzer aus Gruppe in eu_ldap können wir so die Authentifzierung nach unseren Wünschen durchführen.
Als nächstes Problem stellte sich der Import neuer User ins TYPO3 dar. Benutzer werden in einer externen, proprietären Anwendung in die TYPO3-Gruppe verschoben oder entfernt und stehen dann für TYPO3 zur Verfügung. Entweder wartet man bis sich der Benutzer das erste Mal einloggt, dann wird er importiert. Dies ist aber sehr unkomfortabel, da wir ihm erst nach dem 1. Einloggen die TYPO3-Gruppen zuordnen können, die ihm Rechte und Zugriff auf bestimmte Zweige des Baumes geben. Der manuelle Import neuer Benutzer durch eu_ldap funktionierte zwar im Prinzip, zeigte aber den unschönen Effekt, dass der gesamte LDAP-Baum durchlaufen und jeder Benutzer einzeln auf Zugehörigkeit überprüft wird. Bei knapp 15.000 Benutzern im LDAP aus Performance-Gründen nicht akzeptabel. Wir haben daraufhin das Backend-Modul von eu_ldap um zwei Importmöglichkeiten erweitert. Entweder ein einzelner Benutzer kann über seinen Alias importiert werden, oder gleich eine ganze komma-separierte Liste an Benutzern. Dabei wird nicht der ganze Baum, sondern nur der eingegebene Benutzer überprüft.
Das letzte Problem war schließlich ein altbekanntes von eu_ldap. Manuell zugeordnete Gruppen werden beim Re-Import des Benutzers nach dem Einloggen gelöscht. Da wir aber die TYPO3-Gruppen nicht im LDAP zuordnen können, sondern dies weiterhin in TYPO3 geschehen muss, mussten wir eine Unterscheidung zwischen LDAP-Gruppen und "normalen" Gruppen herstellen. Hierbei half uns der von Tom Gottschalk in seiner Diplomarbeit "Entwicklung einer interaktiven Publikations-Plattform mit Redaktionssystem für den Fachbereich Medien der Hochschule Mittweida (FH)" entwickelte Hack sehr weiter, den wir nahezu unverändert übernehmen konnten. Danke schön!
Daneben waren noch einige kleiner Anpassungen am Code, eine eigene Logging-Funktion zum Debuggen und vieles mehr nötig, so dass wir eu_ldap doch deutlich modifziert und auf uns zugeschnitten haben. OpenSource zeigt hier seine Stärken, die Flexibilität und Anpassbarkeit - besonders von TYPO3 - ist klasse.
Jetzige Situation: Derzeit läuft es so ab, dass wir einen neuen Benutzer extern zum TYPO3-User machen, ihn danach über unser modifiziertes eu_ldap ins TYPO3-Backend importieren und dort dann die Gruppen zuweisen. Soll ein Benutzer kein TYPO3-Admin mehr sein, dann nehmen wir einfach aus der LDAP-Gruppe raus oder der Account wird durch Ausscheiden aus der Uni automatisch inaktiv.
Im nächsten Schritt müssen wir uns noch Gedanken über die Realisierung von Frontend-Login machen, um bestimmte Bereiche nur Mitgliedern der Universität oder einzelnen Fachbereichen zugänglich zu machen. Das steht auf der Agenda aber nicht ganz oben.




Kommentare
Mo, 21.11.2011 20:33
jetzt wird alles besser !Neuer Trainer und entlich ein neuer zweiter Spieler.Kann nur sage n super Wagner!!!!!!!
Mo, 21.11.2011 18:55
vom trainerverschleiß vergleic hbar mit dem hsv, vom spielern achkaufniveau vergleichbar mit den wölfen aus der vw-s [...]
Mo, 21.11.2011 16:58
Umbruch und Umbau??? Gerne hä tten das ALLE Fans "VOR" der S aison gesehen und nicht wenn e s als Zuschauer -keinen- [...]
Sa, 19.11.2011 16:08
Das mit dem Auspfeiffen sehe i ch nicht als so schlimm an. De r Fan darf sein Team bejubeln, der Fan darf schweigen, [...]
Sa, 19.11.2011 16:07
Ob das unbedingt der Center ma chen muss, darüber lässt sich natürlich streiten. Ich denke, das ist auch immer ein [...]