Die easydb unterstützt die Authentifizierung von Benutzern direkt aus Typo3. Dabei kann das System sowohl für Webseiten-Benutzer als auch für Backend-Benutzer konfguriert werden.
Die Rechtevergabe innerhalb der easydb erfolgt über den Nutzernamen und die Gruppenzuordnung.
Nutzerrechte können im Rechtemanager durch Angabe des genauen Nutzernamens des Typo3-Nutzers eingerichtet werden. Dabei kann optional eine Postfix oder Prefix für die Typo3-Benutzer konfiguriert werden.
Login-Methods wird verwendet, um die Reihenfolge der benutzen Authentifizierungs-Module anzugeben.
LOGIN_METHODS=easydb,typo3
Die PHP-PDO-DSN zum Verbinden mit der Typo3-Datenbank.
Der Username für die Datenbank-Verbindung.
Der Passwort für den User für die Datenbank-Verbindung.
TYPO3_DB_DSN=mysql:host=localhost:dbname=mytypo3db
TYPO3_DB_USERNAME=root
TYPO3_DB_PASSWORD=
Der SQL-Select um aus der Typo3-Datenbank den Benuter-Datensatz zu selektieren. Easydb erwartet in der Spalte userId eine Benutzer-ID (hier kann das Prefix oder Postfix ergänzt werden) und in der Spalte displayName einen Anzeige-Namen, also der Name unter dem der Benutzer im Frontend angezeigt wird.
Optional kann der Spalte groups die Benutzergruppen-Zuordnung selektiert werden. Die Benutzergruppen-Zuordnung wird kommasepariert ausgewertet. Jede Gruppe wird dann über TYPO3_USERGROUP_MATCH einer oder mehreren easydb-Gruppen zugeordnet.
Die optinale Spalte email kann dafür genutzt werden die Email-Zuordnung zu setzen, um sie beispielsweise beim Versenden von Arbeitsmappen zu benutzen.
%p und %u werden jeweils durch Login + Passwort ersetzt (als SQL-String in einfachen Anführungszeichen).
TYPO3_USER_SELECT=SELECT uid as userId, email as displayName, usergroup as groups FROM \
fe_users WHERE username=%u AND password=md5(%p)
Alle in der dritten Spalte von TYPO3_USER_SELECT angegebenen Gruppen werden mit diesem SQL-Ausdruck (der Teil nach dem WHERE), in easydb-Gruppen übersetzt.
TYPO3_USERGROUP_MATCH=%g = ANY)
Das vorliegende Beispiel sucht in der Gruppen-Tabelle in der Spalte typo3_gruppe nach einem passenden Match für die aus Typo3 gewonnenen Gruppen-IDs.
Wenn gesetzt, kann ein Typo3-Login über eine URL erfolgen. Hierbei überschreibt dieser Parameter TYPO3_USER_SELECT, um den Benutzer aus der Typo3-Datenbank zu selektieren. Die URL wird nach dem key1=value&key2=value-Prinzip ausgwertet, dabei werden %key1 und %key2 usw. durch die entsprechenden Werte ersetzt. Die URL muss zwingend den Parameter typo3_by_request=1 enthalten, um die Authentifizierung über die URL zu aktivieren. Die Werte werden automatisch ge-quoted.
# Die folgende URL führt zu einem direkten Login:
# http://<easydb-server>/?typo3_by_request=1&user=<user>&secret=<password_md5>
#
TYPO3_BY_REQUEST_SELECT=SELECT uid as userId, email as displayName, usergroup as groups FROM \
fe_users WHERE username=%user AND password=%secret
Im vorliegenden Beispiel wird der Select aus TYPO3_USER_SELECT verwendet, mit der Abwandlung, dass für das Passwort direkt der MD5-Hash übergeben wird.
Bitte beachten Sie, dass nach einer erfolgreichen Typo3-Authentifizierung per URL, easydb einen Redirect zu derselben URL ohne Parameter durchführt. Sollte die Authentifizierung nicht erfolgreich sein, wird die easydb-Login-Seite angezeigt.