2-Faktor-Authentifizierung mittels one-time-password (OTP). Mit diesem Addon wird der Login in das REDAXO CMS durch einen zweiten Authentifizierungsweg abgesichert.
Der Administrator hat die Möglichkeit unter Einstellungen innerhalb des AddOns die 2-Faktor-Authentifizierung für die Benutzer zu erzwingen.
Alternativ kann die 2-Faktor-Authentifizierung als Optional gehandhabt werden. Die Authentifizierungsoptionen können eingeschränkt werden, z.B. Ausschließlich E-Mail-Authentifizierung zu erlauben
Als Authentifikator-Apps stehen alle Apps zur Verfügung, die den OTP-Standard einhalten, zum Beispiel:
Zunächst muss eine der Apps installiert sein, um die Einrichtung abzuschließen. Anschließend:
- Im REDAXO-Backend >
2-Faktor-Loginöffnen. - Die 2-Faktor-Einrichtung aktivieren. Es wird ein QR-Code dargestellt.
- Den QR-Code in der Authentifikator-App einlesen.
Hinweis: Manche OTP-Apps benötigen den manuellen Modus. Hierbei gilt: Name =
Name der Website; Benutzer =REDAXO-Benutzername; Secret =Secret-Schlüssel
Damit ist die Einrichtung abgeschlossen.
Nach der erfolgreichen Einrichtung wird jeder neue Login in das REDAXO-Backend durch ein zusätzliches, einmalig generiertes Passwort geschützt.
- Den REDAXO-Backend-Login aufrufen.
- Mit den üblichen Zugangsdaten einloggen. Es wird nach dem einmaligen Zugangscode gefragt.
- Die Authentifikator-App öffnen und den Zugangscode generieren lassen.
- Diesen Code eingeben und fortfahren.
Anschließend ist man, wie gewohnt, im REDAXO-Backend eingeloggt.
Erfolgt die Anmeldung im Backend über einen Passkey (WebAuthn), wird kein zweiter Faktor mehr abgefragt.
Ein Passkey ist bereits ein phishing-resistenter, gerätegebundener Faktor und deckt damit die Anforderung einer Zwei-Faktor-Authentifizierung ab. Der REDAXO-Core behandelt eine Passkey-Anmeldung ebenso bevorzugt – zum Beispiel wird ein erzwungener Passwortwechsel dabei ausgesetzt.
Das AddOn erkennt eine Passkey-Session anhand der passkey_id in der aktuellen rex_user_session und überspringt bei gesetztem Wert sowohl die erzwungene Einrichtung als auch die Code-Abfrage.
Hinweis: Jede über einen Passkey angemeldete Session umgeht die 2FA-Prüfung vollständig. Logins mit Benutzername und Passwort bleiben weiterhin durch den zweiten Faktor geschützt.
Wer sich mit „Eingeloggt bleiben“ anmeldet, wird standardmäßig in jeder neuen Sitzung erneut nach dem Code gefragt. In den Einstellungen lässt sich festlegen, dass ein solches Gerät den zweiten Faktor für 7 bis 90 Tage behält.
Gemerkt wird das Gerät über den „Eingeloggt bleiben“-Cookie; gespeichert wird nur ein Hash davon. Die Freigabe erlischt, wenn die Sitzung beendet wird (Abmelden, Sitzungsliste im Profil, Passwortänderung) oder die 2FA des Benutzers deaktiviert wird. Anmeldungen ohne „Eingeloggt bleiben“ sind davon nicht betroffen.
Hinweis: Wer den Cookie eines gemerkten Geräts erbeutet, kommt innerhalb des Zeitraums ohne Passwort und ohne Code ins Backend. Die Standardeinstellung „Nie merken“ ist deshalb die sicherste.
Seit macOS Sequoia lässt sich die 2-Faktor-Authentifizierung auch ohne Dritt-App einrichten.
- In Redaxo startet man die TOTP-Einrichtung mittels Button "TOTP Einrichtung starten (erfordert App; empfohlen)". Das zeigt einem dann einen QR-Code sowie darunter eine Textzeile an, die mit "otpauth://" beginnt.
- Diese Zeile kopiert man in die Zwischenablage und wechselt zur Passwords App in macOS
- Dort sucht man das bestehende Login zu dieser Website (oder erstellt ein Neues, wenn noch nie gespeichert) und klickt auf "Edit" (Dt. wahrscheinlich "Bearbeiten") oben rechts.
- Dann klickt man "Setup Code..."
- und fügt die Zwischenablage in das Feld "Setup Key".
- Dann klickt man "Use Setup Key" und bekommt eine 6-stellige Nummer, welche man auf der Website in das Feld "2. OTP-Code eingeben um die Einrichtung abzuschliessen" einfügt und durch Bestätigen aktiviert.
| Befehl | Beschreibung |
|---|---|
2factor_auth:status |
Übersicht aller Benutzer mit ihrem 2FA-Status |
2factor_auth:enforce [--all|--admins|-d] |
2FA für alle Benutzer, nur Administratoren oder für niemanden erzwingen |
2factor_auth:user <user> [-e|-d] |
2FA eines Benutzers aktivieren bzw. deaktivieren |
2factor_auth:code <user> [--secret] |
Aktuell gültigen Code eines Benutzers ausgeben |
2factor_auth:code hilft im Support und in der Entwicklung, wenn die Authentifikator-App
nicht zur Hand oder keine E-Mail zustellbar ist. Der Befehl gibt das Geheimnis eines Benutzers
preis – wer Zugriff auf die Konsole hat, kommt allerdings ohnehin an die Datenbank und damit
an dieses Geheimnis.
Nach zu vielen Fehleingaben ist die Code-Eingabe vorübergehend gesperrt. Die Sperre läuft
nach Ablauf eines Zeitfensters von selbst ab (30 Sekunden bei TOTP, bei E-Mail das
eingestellte Zeitintervall). Wer nicht warten kann oder den Zugang verloren hat, kann die
2-Faktor-Authentifizierung mit 2factor_auth:user <user> -d abschalten und neu einrichten.
Bei E-Mail OTP kann man das Zeitinterval für die Gültigkeit des OTP-Codes einstellen. Sollte es bereits Benutzer geben, die ein OTP eingerichtet haben, so gilt das neue Zeitinterval für diese nicht.
Das Deaktivieren der 2-Faktor-Authentifizierung im eigenen Profil erfordert einen gültigen
Code. Ist die 2FA erzwungen, lässt sie sich nicht deaktivieren. Administratoren können sie
für andere Benutzer unter 2-Faktor-Login > Benutzer abschalten.
Consider supporting the project, so we can make this tool even better even faster for everyone.
Markus Staab
https://github.com/staabm
Jan Kristinus
https://github.com/dergel
