Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich hätte da was ...
Wir haben vor einiger Zeit ein eigenes LDAP-Modul erstellt, das ich aber noch nicht als ausgereift ansehe, daher wurde es auch noch nicht veröffentlicht. Aber vielleicht könnt ihr mir ja ein wenig Feedback geben, so dass es doch noch ins Repository kommt.
Ich habe es mal angefügt. Es ist ein Standardmodul, also den enthaltenen Ordner "ldap" einfach in system/modules kopieren. Dann tut es schon seinen Dienst. Weitere Modifikationen am System sind nicht erforderlich. Hierbei möchte ich mich nochmals herzlich für die Hooks "checkCredentials" (war ja ein langer Weg bis ins System!) und "importUser" bedanken, die hier verwendet werden.
Die Konfiguration nistet sich in den Einstellungen im Backend ein (LDAP-Authentifizierung/Benutzerimport vom LDAP-Server). Das neue zusammenklappbare Layout ist auch bereits eingearbeitet, also bitte erst ab Version 2.7.0 verwenden.
Die Funktionsweise:
Wenn in den Einstellungen Authentifizierung bzw. Import aktiviert wurde und die entsprechenden Serverangaben hinterlegt sind, wird bei einem Login zuerst geprüft, ob der Benutzer/das Mitglied in der Typolight-Datenbank vorhanden ist und sein Passwort übereinstimmt. Ist er vorhanden, das Passwort stimmt aber nicht, wird versucht, auf dem LDAP-Server mit dem angegebenen Loginnamen und Passwort einen Bind durchzuführen. Ist der Bind erfolgreich, wird das Login freigegeben.
Wenn das (zukünftige) Mitglied nicht in der Typolight-Datenbank existiert, werden vom LDAP-Server relevante Daten ausgelesen (z. B. Vorname, Nachname) und es wird in der Typolight-Datanbank angelegt. Das erfolgt nicht für Benutzer, da redakteure nur vom Administrator angelegt werden sollen (könnte als konfigurierbar noch mit eingearbeitet werden). Eine E-Mail wird an den Administrator geschickt und im Systemlog wird das Neuanlegen des Mitglieds protokolliert. Als Passwort wird die Variable time() gesetzt. Wenn sich der Benutzer/das Mitglied später wieder anmeldet, weiß er natürlich nicht, welches Passwort in der Typolight-Datenbank existiert. Das braucht er aber auch nicht, da er ja sein LDAP-Passwort eingibt und das dann dort geprüft wird.
Der Mitgliederimport ist erforderlich, um dem Mitglied Rechte im System zuweisen zu können.
Für das Testen des beigelegten Beispiels ist die Installation der Module recall und helpdesk erforderlich.
Offenes/Probleme:
Welche Daten vom LDAP-Server importiert werden, ist momentan noch hardcodiert hinterlegt (im beigelegten Beispiel: firstname, lastname, login, username, password -> time(), email, language, helpdeskshowrealname, company, allowEmail, recall).
Wenn das Mitglied einmal angelegt ist, erfolgt kein weiterer Abgleich der Daten mit dem LDAP (z. B. geänderte E-Mail-Adresse).
Eine Zuweisung von Rechten (Mitgliedergruppen) für das Mitglied muss händig vom Administrator vorgenommen werden, sie erfolgt nicht automatisch. Er erhält nach dem Import nur den Status eines "eingeloggten Benutzers".
Großes Problem: Aus einem mir unerfindlichen Grund werden bestimmte Zeichen im Passwort nicht verstanden (z. B. das Pluszeichen, der Bindestrich o.ä.). Aber Umlaute werden akzeptiert. Das bedeutet, wenn ein Benutzer ein Pluszeichen im Passwort verwendet, wird die Authentifizierung abgelehnt. Habe schon auf UTF-8 usw. geprüft, aber keinen Lösungsansatz gefunden. Vielleicht habt ihr eine Idee.
Ansonsten kann man mit dem Modul durchaus schon arbeiten, ggf. eigene Anpassungen und Toleranz gegenüber dem Passwortproblem vorausgesetzt.
Na ja, vielleicht hilfts als Anregung weiter ... ;)