Alternative Datenbank für FE-Benutzerlogin verwenden

Wie nutzt man die Benutzerdaten einer externen Datenbank für den Frontend-Benutzerlogin in TYPO3?

Folgend eine Schritt-für-Schritt-Anleitung:

für TYPO3 ab Version 3.8 benötigt man folgende Extensions:

1.) ADODB (sysext)

2.) datasources

3.) rlmp_extdbauth

Vor TYPO3 3.8 benötigt man zusätzlich die Extension cc_sv_auth, da der Authentifizierungs-Service erst ab 3.8 bei TYPO3 dabei ist.

Serverseitig muss ausserdem die Unterstützung für die jeweilige Datenbank in PHP einkompiliert sein.

Es empfiehlt sich das ODBC-Modul von PHP zusammen mit unixODBC zu verwenden, damit besteht dann die Möglichkeit alle für unixODBC verfügbaren Treiber z.b. für Oracle, Sybase, MSSQL etc. zu nutzen.

Zunächst sollte nun ein Sysfolder für die Datasources und Konfiguration angelegt werden.

Ansschliessend muss im TYPO3-Backend über das Listenmodul eine Datasource definiert werden, diese muss im Falle von unixODBC dafür konfiguriert werden.

Nun müssten bei einem Verbindungstest (kleines Icon neben der Verbindung) einige Datensätze zurückgeliefert werden.

Nach dem ersten (hoffentlich) Erfolgserlebenis legt man über das Listenmodul nun die Konfiguration für die Extension rlmp_extdbauth an.

In einer TypoScript-ähnlichen Syntax defniert man hier ein SQL-Query sowie ein Mapping, um die Benutzerdaten aus der entfernten Tabelle der lokalen (fe_users) zuzuordnen.

authentication {
  query = SELECT Benutzername,Passwort,Benutzergruppe WHERE Benutzername=###USERNAME### AND Passwort=###PASSWORD###
  fieldMap {
    username = Benutzername
    password = Passwort
    usergroup = Benutzergruppe
    disable = {0}
    deleted = {0}
  }
  # pid where fe-users are stored
  pid = 66
  # delete local users NOT EXISTING in remote database
  deleteLocalUsers = 1
}

Damit der neue Authentifizierungsservice aktiv wird muss in das Loginformular ein Hidden-Field eingefügt werden:

<input name="tx_rlmpextdbauth_uid" value="1" type="hidden" />

Als value muss man die uid des Datensatzes eintragen, der die extdbauth Konfiguration enthält, fertig!

Veröffentlicht unter TYPO3 Technik
2 Kommentare auf “Alternative Datenbank für FE-Benutzerlogin verwenden
  1. Michael sagt:

    schöne Lösung!

  2. chicky sagt:

    Der Sytax für die MySql query is falsch:

    query = SELECT * FROM tabelle WHERE user=“###USERNAME###“ AND password=“###PASSWORD###“

    tabelle, user und passwort müssen natürlich mit den eigen daten ausgtauscht werden und ###USERNAME### und ###PASSWORD### müssen in Anführungzeichen stehen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*