Typo3-Authentifizierung

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

Login-Methods wird verwendet, um die Reihenfolge der benutzen Authentifizierungs-Module anzugeben.

LOGIN_METHODS=easydb,typo3

TYPO3_DB_DSN

Die PHP-PDO-DSN zum Verbinden mit der Typo3-Datenbank.

TYPO3_DB_USERNAME

Der Username für die Datenbank-Verbindung.

TYPO3_DB_PASSWORD

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=

TYPO3_USER_SELECT

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)

TYPO3_USERGROUP_MATCH

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.

TYPO3_BY_REQUEST_SELECT

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.