2FA im Portal

Die Zwei-Faktor-Authentifizierung kann zur Absicherung des Logins im Portal genutzt werden. Dieses Paket ist abhängig von framework-tfa.

Konfiguration

Die Einrichtung von Authentifikationsverfahren im Portal erfolgt in der Konfigurationstabelle 2FA im Portal. Diese Tabelle ist im geschützten Bereich in der Kachel 2FA zu finden. Die Konfiguration gestaltet sich als einfach. Über eine Checkbox ist die Aktivität der Zwei-Faktor-Authentifizierung steuerbar. Darüberhinaus kann über ein Auswahlfeld das gewünschte Authentifizierungsverfahren ausgewählt werden. Das Verhalten bei fehlendem Authentifikator ist ebenfalls definierbar. Hier gilt es zu beachten, dass nicht jeder Authentifikator auf diese Konfigurationsmöglichkeit zurückgreift. Wurde ein gültiger Authentifikator ausgewählt und die Zwei-Faktor-Authentifizierung aktiviert, ist die Zwei-Faktor-Authentifizierung nutzbar, sofern der Authentifikator vollständig eingerichtet wurde. Diese Informationen sollten aus den entsprechenden Dokumentationen der Authentifikatoren entnommen werden.

Bei einem aktiven und gültigen Authentifikator, wird bei einem Login-Versuch ein Modal geöffnet, welches ein Formular zur Codeeingabe enthält. Ist der eingegebene Code gültig, wird der Nutzer regulär angemeldet.

OTP

Für die Einrichtung des OTP-Verfahrens bringt Portal/Tfa eigene Ansichten mit. Diese Ansichten sollten auf Seiten des Portals platziert werden. Die Seiten zum Einrichten des Authentifikators müssen in der Konfigurationstabelle 2FA im Portal definiert werden. Zu dieser Ansicht gelangt ein Nutzer, indem er in der Bearbeiten-Ansicht seines eigenen Nutzers auf den Link Authentikator einrichten klickt. Dieser Link ist in den Meta-Daten sichtbar. Wurde ein Authentifikator bereits eingerichtet, lässt sich Dieser über einen entsprechenden Link in den Meta-Daten wieder entfernen. Es ist außerdem möglich über ein Element in der Kopfleiste des Portals zu diesen Ansichten zu gelangen. Wurde über die Konfiguration definiert, dass ein zweiter Faktor forciert werden soll, wird die Seite zum Einrichten des Authentifikators nach einem Login automatisch geöffnet.

Zur Konfiguration der Rechte- und Rollen ist das Schema Admin 2FA Operator vorhanden. Dieses Schema berechtigt den Nutzer dazu OTP-Authentifikatoren einzurichten und zu entfernen.

Für Entwickler

Die Logik für die Einbindung der Zwei-Faktor-Authentifikation ist im Paket portal-tfa als Komponente Portal/Tfa enthalten. Für OTP benötigte Logik ist in der Komponente Portal/TfaOtp enthalten. Die Funktionalität wird durch Eventlistener in den 2FA-Prozess eingebracht.

Portal/Tfa

Gegensätzlich zum administrativen Bereich, wird die Login-Methode nicht über die @plugin-Notation überschrieben, um die Zwei-Faktor-Authentifizierung auszulösen. Es wird ein Eventlistener für das entsprechende Event aus Component/Login genutzt. Bei einem erfolgreichem Login wird der 2FA-Prozess durch die Methode \Brandbox\FrameworkTfa\Tfa\Tfa\Manager::triggerSecondFactor ausgelöst. Der Nutzer wird wieder abgemeldet und das Modal zur Eingabe des Codes geöffnet. Die Uri zum Modal wird über die Methode \Brandbox\FrameworkTfa\Tfa\Tfa\Manager::getUriModalSubmitTfaCode abgerufen. Dieser Uri wird die ID der Login-View angehängt, um die Weiterleitung nach dem Login zu ermöglichen.

Eventlistener

Event

Funktion

Event

Funktion

\Brandbox\Framework\Component\Login\Lib\Event\Login\OnSubmit

Die Eventlistener für dieses Event lösen das Zwei-Faktor-Authentifizierungsverfahren aus, wenn es für das Portal auskonfiguriert wurde und es sich um einen gültigen Nutzer handelt.

\Brandbox\Framework\Component\Form\Lib\Event\OnPopulateSet

Dieses Event wird genutzt, um die ID der Login-View in das Formular miteinzubringen, welche über die URI des Modals bereitgestellt wird.

\Brandbox\FrameworkTfa\Tfa\Tfa\Lib\Event\OnPopulateTfaContainer

Dieses Event wird genutzt, um diverse Werte Event-Kontext zu definieren (bspw. Identifikator des Authentifikators, welcher aus der Konfguration 2FA im Portal kommt).

\Brandbox\Framework\Base\Dashboard\Lib\Event\OnMapPanel

Mit diesem Eventlistener wird die Konfigurationstabelle 2FA im Portal in der Kachel Zwei-Faktor-Authentifizierung ergänzt. Die Kachel wird anhand ihres Identifikators FrameworkTfaPanel identifiziert und entsprechend erweitert.

Portal/TfaOtp

Diese Komponente kümmert sich um die notwendige Logik und Elemente, um den OTP-Authentifikator im Portal einzubinden. 

Eventlistener

Event

Funktion

Event

Funktion

\Brandbox\CmsLayoutPortal\Theme\Portal\Lib\Event\OnPopulateHeader

Dieses Event wird genutzt, um das das Verhalten bei fehlenden Authentifikatoren zu reagieren. Sollte auf den fehlenden Authentifikator hingewiesen werden, wird ein Element in der Kopfzeile angezeigt, das den Nutzer darauf hinweist, dass ein Authentifikator erwartet wird. Sollte der zweite Faktor erzwungen werden, wird der Nutzer direkt auf die in der Konfiguration definierte Seite zum Einrichten des zweiten Faktors umgeleitet.

\Brandbox\Framework\Base\Meta\Lib\Event\OnPopulateInformation

Dieser Eventlistener wird genutzt, um die Meta-Informationen mit dem Status des OTP-Authentifikators zu bereichern. Handelt es sich bei einem zu editierenden Nutzer um den derzeit angemeldeten Nutzer, wird ein Link zur Einrichtung des Authentifikators dargestellt, wenn der Nutzer keinen Authentifikator hat. Ist bereits ein Authentifikator vorhanden, ist es möglich den Authentifikator wieder zu entfernen.

\Brandbox\Framework\Component\Form\Lib\Event\OnPopulateSet

Wird der zweite Faktor erzwungen, wird zusätzlich eine Hinweismeldung im Formular zur Einrichtung des Otp-Authentifikators platziert, um den Nutzer über den erforderlichen Authentifikator zu informieren.

\Brandbox\Framework\Component\Widget\Lib\Event\OnPopulateRepository

Durch dieses Event werden der Konfigurationstabelle 2FA im Portal neue Konfigurationsmöglichkeiten hinzugefügt. Diese Möglichkeiten erlauben es dem Nutzer die Seiten zu definieren, welche benötigt werden, um OTP-Authentifikatoren im Portal einzurichten.