Zwei-Faktor-Authentifizierung

Die Zwei-Faktor-Authentifizierung (2FA) schützt Frontend-Logins Ihrer Kunden mit einem zusätzlichen Einmal-Code, der per E-Mail zugestellt wird.

Hintergrund

Ein gestohlenes Passwort allein reicht nicht aus, um sich am Kundenkonto anzumelden, sobald 2FA aktiviert ist. Beim Login muss zusätzlich ein 6-stelliger Code aus der zuletzt versendeten E-Mail eingegeben werden (Abb.: Frontend-Login mit Zwei-Faktor-Authentifizierung).

Frontend-Login mit Zwei-Faktor-Authentifizierung

Abb.: Frontend-Login mit Zwei-Faktor-Authentifizierung

Funktionsweise

Nach erfolgreicher Eingabe von Benutzername und Passwort sendet der Shop einen 6-stelligen Code an die E-Mail-Adresse des Kunden. Der Kunde gibt diesen Code auf der OTP-Seite ein, um den Login abzuschließen.

Schutzmechanismen:

  • Der Code ist standardmäßig 5 Minuten gültig. Die Gültigkeitsdauer ist über die Einstellung Lebensdauer des OTP-Codes (Sekunden) konfigurierbar (Zwei-Faktor-Authentifizierung shopweit aktivieren).

  • Pro Code sind 5 Versuche zulässig. Nach dem fünften Fehlversuch muss der Kunde den Login neu starten.

  • Zwischen zwei Code-Versendungen liegt eine Wartezeit von 60 Sekunden.

Einsatzbereich

Die 2FA-Schutzfunktion gilt für Frontend-Logins (Kundenkonto im Storefront) sowie für Logins über die OXAPI (headless). Für die Anbindung headless-basierter Frontends siehe Zwei-Faktor-Authentifizierung über die OXAPI.

Nicht abgedeckt:

  • Logins im Admin-Backend.

Standardverhalten

Nach Installation oder Update des Moduls ist 2FA standardmäßig sowohl shopweit als auch für jeden einzelnen Kunden deaktiviert. Es entstehen keine zusätzlichen Login-Hürden für Bestandskunden.

Sie als Shop-Admin schalten lediglich die Funktion shopweit frei (Zwei-Faktor-Authentifizierung shopweit aktivieren). Erst danach wird die 2FA-Option im Kundenkonto sichtbar. Jeder Kunde entscheidet anschließend selbst, ob er 2FA für sein Konto nutzen möchte (Aktivierung durch den Kunden).

Erst wenn ein Kunde 2FA in seinem eigenen Account aktiviert, wird bei seinem nächsten Login ein 2FA-Code abgefragt.

Zwei-Faktor-Authentifizierung shopweit aktivieren

Voraussetzungen

  • Sie haben das OXID Security-Modul installiert und aktiviert (siehe Installation).

Vorgehen

  1. Wählen Sie unter Erweiterungen ‣ Module das OXID Security-Modul.

  2. Wählen Sie die Registerkarte Einstell..

  3. Wählen Sie den Bereich Zwei-Faktor-Authentifizierung.

    Zwei-Faktor-Authentifizierung shopweit aktivieren

    Abb.: Zwei-Faktor-Authentifizierung shopweit aktivieren

  4. Markieren Sie das Kontrollkästchen Zwei-Faktor-Authentifizierung aktivieren.

  5. Optional: Passen Sie die weiteren 2FA-Einstellungen an:

    • Art der Zwei-Faktor-Authentifizierung: Methode zur Übermittlung des zweiten Faktors. Derzeit ist ausschließlich OTP (Einmal-Passwort per E-Mail) verfügbar. TOTP (Authenticator-App) ist für ein zukünftiges Release geplant.

    • Lebensdauer des OTP-Codes (Sekunden): Wie lange ein per E-Mail versendeter OTP-Code gültig bleibt. Gilt sowohl für den Storefront- als auch für den OXAPI-Flow. Standard: 300 (5 Minuten).

    • Lebensdauer der API-2FA-Challenge (Sekunden): Nur für die OXAPI relevant. Legt fest, wie lange ein Challenge-Token gegen ein vollständiges Access-Token eingelöst werden kann. Der Wert wird automatisch auf die Lebensdauer des OTP-Codes begrenzt — ein Challenge-Token ist nie länger nutzbar als der OTP-Code selbst. Standard: 300 (5 Minuten). Siehe auch Zwei-Faktor-Authentifizierung über die OXAPI.

  6. Speichern Sie Ihre Einstellungen.

Resultat

2FA ist shopweit aktiviert. Ihre Kunden können die Funktion nun selbst in ihrem Kundenkonto einschalten.

Aktivierung durch den Kunden

Sobald 2FA shopweit aktiviert ist, kann jeder Kunde 2FA für seinen eigenen Account selbst einschalten oder ausschalten.

Vorgehen

  1. Der Kunde meldet sich im Frontend an und öffnet sein Kundenkonto.

  2. Im Bereich Sicherheit wählt der Kunde die Option Zwei-Faktor-Authentifizierung aktivieren.

  3. Der Kunde speichert die Einstellung (Abb.: Kundenkonto Sicherheit mit aktivierter Zwei-Faktor-Authentifizierung).

    Kundenkonto Sicherheit mit aktivierter Zwei-Faktor-Authentifizierung

    Abb.: Kundenkonto Sicherheit mit aktivierter Zwei-Faktor-Authentifizierung

Resultat

Beim nächsten Login dieses Kunden wird zusätzlich zu Benutzername und Passwort ein 2FA-Code per E-Mail angefordert.

Bei zu vielen Fehlversuchen

Pro 2FA-Code sind 5 Versuche zulässig. Nach dem fünften Fehlversuch wird der laufende OTP-Vorgang gesperrt: das Eingabefeld für den Bestätigungscode, der Absenden-Button und die Schaltfläche zum erneuten Senden des Codes werden ausgeblendet (Abb.: 2FA-Login nach 5 Fehlversuchen).

2FA-Login nach 5 Fehlversuchen

Abb.: 2FA-Login nach 5 Fehlversuchen

Stattdessen erscheint die Schaltfläche Erneut anmelden. Mit einem Klick darauf wird der gesperrte OTP-Vorgang verworfen und der Kunde zur Anmeldeseite zurückgeführt. Von dort kann er einen neuen Login-Versuch mit Benutzername und Passwort starten, bei dem ein frischer 2FA-Code an seine E-Mail-Adresse gesendet wird.

OTP-E-Mail anpassen

Die E-Mail mit dem 2FA-Code wird aus einem CMS-Inhalt erzeugt. So passen Sie Betreff und Text der E-Mail im Admin-Backend an Ihr Corporate Design an, ohne in den Code einzugreifen.

Hintergrund

Der CMS-Inhalt hat die Kennung (OXLOADID) oesm2faotpemail und liegt im Ordner CMSFOLDER_EMAILS. Betreff und Text werden je Sprache gepflegt. Das Modul bettet den Text beim Versand sowohl in eine gestaltete HTML-E-Mail als auch in eine Nur-Text-Variante ein.

Beim Versand werden zwei Platzhalter ersetzt:

Behalten Sie beide Platzhalter im Text bei. Enthält der Text den Platzhalter { otp } nicht, versendet das Modul stattdessen die integrierte Standard-E-Mail (siehe unten), damit der Kunde den Code in jedem Fall erhält.

Vorgehen

  1. Öffnen Sie im Admin-Backend die CMS-Inhalte über den Menüpunkt CMS-Seiten.

  2. Öffnen Sie den Inhalt mit der Kennung (OXLOADID) oesm2faotpemail.

  3. Passen Sie Betreff und Text je Sprache an. Behalten Sie die Platzhalter { otp } und { minutes } bei.

  4. Speichern Sie den Inhalt.

Resultat

Die 2FA-Code-E-Mails werden mit Ihrem angepassten Betreff und Text versendet.

Weitere Hinweise:

  • Fallback. Ist der CMS-Inhalt nicht vorhanden oder inaktiv, versendet das Modul eine integrierte, übersetzte Nur-Text-E-Mail. So erhält der Kunde den Code auch dann, wenn kein CMS-Inhalt gepflegt ist.

  • Sprachen und Mandanten. Der CMS-Inhalt wird bei Installation oder Update nur für Shop 1 in Deutsch und Englisch angelegt. Abhängig von Ihrer Shop-Konfiguration (CE/PE/EE) und den aktiven Sprachen müssen Sie den Inhalt gegebenenfalls manuell ergänzen — etwa für weitere Sprachen oder für EE-Subshops außer Shop 1.

Hinweise

  • Login-Probleme bei E-Mail-Verlust. 2FA verlässt sich auf die hinterlegte E-Mail-Adresse des Kunden. Wenn ein Kunde keinen Zugriff mehr auf seine E-Mail hat, kann er auch über die Funktion „Passwort vergessen“ keinen Zugang mehr herstellen — beide Wege nutzen dieselbe E-Mail-Adresse.

  • Stay-logged-in mit 2FA. Wenn ein Kunde 2FA aktiviert, wird ein bestehender „Stay logged in“-Cookie verworfen. Beim nächsten Aufruf muss sich der Kunde regulär neu anmelden, dann mit 2FA-Code.