Ab der Version 4.2 haben wir eine neue Möglichkeit, unsere Websites zu authentifizieren. Die bisher eingebaute Zwei-Faktor-Authentifizierung hat sich mit den vielen neuen Authentifizierungsmethoden, die in den letzten Jahren aufgekommen sind, überholt.
Deshalb wurde in der Version 4.2 eine brandneue Multi-Faktor-Authentifizierung (MFA) eingeführt.
Dies ist eine Übersetzung des Artikels «New to Joomla 4.2, Multi-factor Authentication (MFA)» von Philip Walton aus dem Joomla! Community Magazine 10/22 (Link zum Original)
Was ist Multi-Faktor-Authentifizierung?
Seit über 9 Jahren hat Joomla eine Zwei-Faktor-Authentifizierungslösung. Jeder Benutzer hat einen Benutzernamen und ein Passwort, und für einige Seiten war es auch erforderlich, einen zweiten Authentifizierungsfaktor zu verwenden. Dies könnte die Verknüpfung eines Kontos mit dem Google Authenticator oder Authy auf deinem Telefon sein. Du gibst geben Benutzernamen und Passwort ein, und wirst dann nach einem sechsstelligen Code gefragt, der auf deinem Telefon angezeigt wird. Er ändert sich alle 30 Sekunden, und wenn die Zahl auf dem Bildschirm und die Zahl, die du in das verknüpfte Konto eingibst, nicht übereinstimmen, wird die Anmeldung verweigert.
Nicholas K. Dionysopoulos (der Entwickler, der die neue Multi-Faktor-Authentifizierungsfunktion beigesteuert hat) hat sich für einen sogenannten "Captive Login"-Ansatz entschieden. Zunächst meldest du dich dich bei deinem Benutzerkonto an. Bevor du auf den eingeloggten Bereich der Website zugreifen kannst, wird dir ein weiterer Bildschirm angezeigt, um deine Anmeldung zu bestätigen - dies ist der Punkt, an dem das "Captive Login" stattfindet. Du kannst jede der in deinem Benutzerkonto eingerichteten Methoden zur Validierung verwenden. Danach bist du vollständig eingeloggt und kannst wie gewohnt fortfahren.
Mehrere Authentifizierungsmethoden pro Benutzer
Benutzer können mehrere MFA-Methoden haben. Eine Einrichtung könnte aus zwei WebAuthn-Schlüsseln (Haupt- und Backup-Schlüssel) und einem klassischen sechsstelligen Code für die Verwendung auf einem älteren Smartphone bestehen, das keine WebAuthn-Dongles unterstützt. Dies macht MFA benutzerfreundlicher und widerstandsfähiger gegen Unfälle, die Menschen von ihrer Website aussperren.
Standardmethode
Wenn du mehrere Authentifizierungsmethoden hast, möchtest du nicht darüber nachdenken, welche Methode du heute zur Authentifizierung verwenden möchtest, zumal du wahrscheinlich 99 % der Zeit dieselbe Methode verwenden wirst. Daher kannst du eine Standardmethode wählen. Du kannst KEINE Notfallcodes, die nur einmal verwendet werden können, als Standardmethode verwenden, um die Wahrscheinlichkeit von dummen Fehlern zu verringern.
Gruppierung von Methoden zur einfacheren Authentifizierung
Angenommen, du hast drei WebAuthn-Authentifikatoren eingerichtet. Wenn du dich anmelden, möchtest du eine einzige Seite sehen, die dich nach einer WebAuthn-Anmeldung fragt, ohne dass du anklicken musst, welchen WebAuthn-Authentifikator du verwenden willst.
Mit WebAuthn und YubiKey kannst du mehrere Instanzen dieser Methode einrichten. Anstatt zu wählen, welchen WebAuthn-Authentifikator oder YubiKey du verwenden möchtest wählst du einfach die Methode, z. B. 'WebAuthn'. Dann kannst du einen der Authentifikatoren/Schlüssel verwenden, den du eingerichtet hast. Joomla wird den richtigen herausfinden, wie du es von einer professionellen Multi-Faktor-Authentifizierungslösung erwarten würdest. Der reguläre Authentifizierungscode und der Authentifizierungscode per E-Mail erlauben nur eine einzige Instanz, und können somit kein Methoden-Batching durchführen.
Bestehende Zwei-Faktor-Authentifizierungsmethoden werden automatisch migriert
Um mehrere MFA-Methoden pro Benutzer zu unterstützen, war eine Umstrukturierung der Joomla-Tabellen erforderlich. Die MFA-Daten aus den beiden #__users-Spalten
(otpKey und otep) wurden in eine eigene Tabelle (#__user_tfa
) verschoben. Jede bereits eingerichtete Zwei-Faktor-Authentifizierungsmethode (TFA) wird beim ersten Login automatisch migriert. Dies bedeutet, dass die MFA auch bei Websites mit Hunderttausenden von Benutzern sauber migriert wird, was nicht der Fall gewesen wäre, wenn die Migration während des Updates durchgeführt worden wäre. Das bedeutet, dass du den TFA/MFA-Status oder die Konfigurationseinstellungen eines Benutzers in com_users im Backend nicht siehst, bis er sich anmeldet.
Die Daten sind verschlüsselt
Die MFA-Konfigurationsdaten werden weiterhin mit AES-256 verschlüsselt, wobei ein Schlüssel verwendet wird, der aus dem "Geheimnis" der Website abgeleitet wird. Daher wird eine einfache SQLi-Schwachstelle in einer beliebigen Erweiterung die Geheimnisse für MFA nicht preisgeben.
Neue Authentifizierungsmethoden verfügbar
Zusätzlich zu den bestehenden Methoden Authentication Code und YubiKey kannst du jetzt auch Authentication Code per Email und WebAuth verwenden. Ersterer sendet einen 6-stelligen Code an deine E-Mail Adresse und kann auch so eingerichtet werden, dass er für jeden Benutzer zwangsweise aktiviert wird (als praktikable Absicherung, wenn die Nutzer nicht sehr technisch versiert sind). Letztere unterstützt Windows Hello und Android
Erzwungene MFA und Verbotene MFA-Gruppen
Du kannst optional bestimmte Benutzergruppen so einrichten, dass MFA zwangsweise aktiviert wird, und andere Gruppen so, dass MFA zwangsweise verweigert wird. Gruppen, für die MFA erzwungen wird, müssen MFA einrichten und verwenden, um die Website weiterhin nutzen zu können. Gruppen, denen die Verwendung von MFA verweigert wird, werden nie aufgefordert, die unverschlüsselte Anmeldung zu durchlaufen, selbst wenn sie diese zuvor aktiviert hatten, und sie sehen auch nicht den MFA-Konfigurationsabschnitt in com_users.
Onboarding zur Förderung der Akzeptanz
Du kannst optional festlegen, dass Benutzern automatisch eine Onboarding-Seite angezeigt wird, wenn sie sich anmelden und MFA noch nicht aktiviert haben. Du kannst MFA einrichten, zu einer anderen Seite wechseln oder die Einführungsseite für immer verlassen. Du kannst die Onboarding-URL auch anpassen, z. B. wenn du einen eigenen Artikel anzeigen möchtest, anstatt die Standardseite für die MFA-Einrichtung anzuzeigen. Laut Nicholas erhöht dies die MFA-Akzeptanz um das Zehnfache. Beachte, dass das Onboarding standardmässig deaktiviert ist.
Superuser können andere Superuser nicht bearbeiten
Als Superuser kannst du die MFA-Einstellungen eines anderen Superusers überhaupt nicht ändern. Wenn also ein Superuser seine Daten falsch einstellt, musst du zwingend die Datenbank bearbeiten.
Administratoren können nur MFA-Optionen für andere Benutzer entfernen. Als privilegierter Benutzer kannst du nur MFA-Optionen von anderen Benutzerkonten (Nicht-Superuser) entfernen oder deren MFA vollständig deaktivieren. Du kannst deren MFA-Konfiguration nicht bearbeiten oder neue MFA-Methoden einrichten.
Deaktivieren mit einem Klick
Die MFA-Konfigurationsschnittstelle enthält eine Schaltfläche Ausschalten, mit der du die MFA für dein Benutzerkonto vollständig deaktivieren kannst. Dies ist nützlich, wenn du den Zugriff auf alle MFA-Methoden verloren hast, einen Notfallcode verwendet hast und MFA einfach ausschalten möchtest, bis du deine anderen Probleme gelöst hast.
Anpassung der Modulpositionen auf der unverschlüsselten Seite
Du kannst wählen, welche Modulpositionen auf der unverschlüsselten MFA-Seite angezeigt werden sollen. So kannst du z. B. die Kopf- und Fusszeile deiner Website anzeigen, um den Nutzern ein besseres visuelles Erlebnis zu bieten.
Zusammenfassend lässt sich sagen, dass Joomla 4.2 mit der neuen Multi-Faktor-Authentifizierung eine ausbaufähige, sichere und zukunftssichere Authentifizierung bietet.
Über den Autor dieses Artikels
Dieser Beitag wurde im Original von Philip Walton verfasst. Philip arbeitet seit über 40 Jahren mit Computern und IT. In den 70er Jahren hat er seine ersten Programme im Alter von 11 Jahren geschrieben, zu einer Zeit, als die Ausgabe noch über einen Nadeldrucker mit grünen Streifen auf dem Papier und die Eingabe über Lochkarten erfolgte. Disketten waren noch ein Traum, und Cobol, Fortran und Pascal waren die Sprachen, die man kennen musste. Seit jener Zeit hat er sich ein wenig weiterentwickelt und war an der Programmierung von Robotern beteiligt, hat eine Softwarefirma mit mehreren hundert Websites geleitet und seit Mambo mit Joomla gearbeitet.