Neuigkeiten von trion.
Immer gut informiert.

Keycloak Login mit Magic Links

Keycloak

Magic Links sind ein Authentifizierungsverfahren, das eine passwortlose Anmeldung ermöglicht. Statt eines Passworts erhalten Benutzer per E-Mail einen speziellen Link, der eine Sitzung mit ihrem Konto startet. Indem sie einfach auf den Link klicken, werden sie direkt in ihr Konto eingeloggt, ohne ein Passwort eingeben zu müssen.

Magic Links bieten mehrere Vorteile:

Bequemlichkeit

Benutzer müssen sich kein komplexes Passwort merken oder eingeben. Sie erhalten einen direkten Zugriff auf ihr Konto, indem sie auf den Link in ihrer E-Mail klicken. Dies erleichtert die Anmeldung und reduziert die Reibungspunkte für die Benutzer.

Sicherheit

Magic Links nutzen die Sicherheit des E-Mail-Kontos des Benutzers. Der Link wird an die registrierte E-Mail-Adresse gesendet, die mit dem Konto verknüpft ist. Dadurch wird sichergestellt, dass nur der rechtmäßige Besitzer der E-Mail-Adresse Zugriff auf das Konto hat. Es wird davon ausgegangen, dass der Zugriff auf die E-Mail-Adresse des Benutzers ausreichend sicher ist.

Schutz vor Passwort-bezogenen Risiken

Da bei Magic Links keine Passwörter verwendet werden, sind Benutzer nicht anfällig für Risiken wie unsichere Passwörter, Passwortlecks oder Phishing-Angriffe, die auf Passwörter abzielen. Dadurch wird die Sicherheit erhöht und das Risiko von Kontoübernahmen reduziert.

Es ist jedoch wichtig zu beachten, dass Magic Links möglicherweise nicht für alle Anwendungsfälle geeignet sind. Bei sensiblen oder hochsensiblen Konten können zusätzliche Sicherheitsmaßnahmen wie die Zwei-Faktor-Authentifizierung erforderlich sein, um einen angemessenen Schutz zu gewährleisten.

Keycloak unterstützt Magic Links nicht out of the Box. Da Keycloak aber sehr gut erweiterbar ist, lässt sich die benötigte Funktionalität recht einfach über eine Erweiterung nachrüsten.

Je nach Anforderung lohnt es sich eine solche Erweiterung kundenindividuell zu entwickeln oder auf eine bereits entwickelte, quelloffene Erweiterung zurückzugreifen. Für unser Beispiel verwenden wir die Magic Link Extension von PhaseTwo.

Extensions für Keycloak werden als Jar-Dateien bereitgestellt. Um sie zu installieren werden diese Jar-Dateien in das Verzeichnis /opt/keycloak/providers/ kopiert.

Wird Docker verwendet, kann mit folgendem Dockerfile ein vom offiziellen Keycloak-Image abgeleitetes Image mit der benötigten Extension erzeugt werden:

FROM quay.io/keycloak/keycloak:21.1.1

ENV KC_METRICS_ENABLED=true
ENV KC_HEALTH_ENABLED=true
ENV KC_FEATURES=preview

ADD https://repo1.maven.org/maven2/io/phasetwo/keycloak/keycloak-magic-link/0.11/keycloak-magic-link-0.11.jar /opt/keycloak/providers/
ADD https://repo1.maven.org/maven2/io/phasetwo/keycloak/keycloak-themes/0.17/keycloak-themes-0.17.jar /opt/keycloak/providers/

USER root

RUN chown 1000:1000 /opt/keycloak/providers/*

USER 1000

RUN /opt/keycloak/bin/kc.sh --verbose build

Authentication Flow konfigurieren

Die Extension kommt mit einem Magic Link Authenticator und einem eigenen Authentication Flow, der als Browser Flow aktiviert werden kann:

Authentication Flow

Über die Konfiguration des Authenticators kann festlegt werden, dass bei Eingabe einer E-Mail-Adresse, die noch keinem Benutzer zugeordnet wurde, automatisch ein neuer Benutzer angelegt werden soll ("Force create new user"):

Magic Link Konfiguration

Wichtig ist weiterhin, dass für den Realm ein E-Mail-Zugang konfiguriert wurde, sonst kann Keycloak keine E-Mails mit Magic Links verschicken. Die Einstellung dazu können unter Realm settings/Email vorgenommen werden.

Bei der Anmeldung mit Magic Link wird der Benutzer nun zunächst nach seinem Benutzernamen oder seiner E-Mail-Adresse gefragt.

Magic Link Anmeldung mit Benutzernamen oder E-Mail-Adresse

Wird der Benutzer gefunden, wird ihm eine E-Mail mit Magic Link geschickt. Wird kein Benutzer gefunden, wird - je nach Konfiguration - ein neuer Benutzer angelegt und ebenfalls eine E-Mail mit Magic Link versendet.

Magic Link

Sobald der Benutzer die E-Mail erhalten hat, braucht er nur noch auf den enthaltenen Link zu klicken und ist in der Anwendung angemeldet.

Magic Link E-Mail

Für zusätzliche Sicherheit, ist der Link nur eine bestimmte Zeit lang gültig und kann nach Abauf nicht mehr verwendet werden.

Anpassungen und Variationen

Natürlich lässt sich das E-Mail-Template gemäß der unternehmenspezifischen Layout- und Designvorgaben anpassen.

Als weitere Variation kann statt des Magic Links auch ein Authentifizierungscode bzw. One-Time-Passwort verschickt werden. Dann wird kein Link angeklickt, sondern stattdessen ein 6-stelliger Code in ein Formular eingetragen.

OTP

Dies kann nützlich sein, wenn E-Mails auf einem mobilen Endgerät wie einem Smartphone empfangen werden, die Anwendung aber auf einem Desktop PC oder Notebook verwendet werden soll.

Hierzu stellt die Extension einen E-Mail OTP Authenticator zur Verfügung:

Authentication Flow mit E-Mail OTP Authenticator

Weitere Variationen sind denkbar, erfordern aber etwas Programmieraufwand bei der Anpassung oder Entwicklung von Keycloak Erweiterungen.

So könnte man beispielsweise den Authentifizierungscode über einen SMS-Anbieter oder als Whatsapp-Nachricht verschicken oder könnte einen Magic Link entwickeln, der es ermöglicht vom Mobiltelefon aus eine Authenfizierung auf einem Desktop-PC oder Notebook freizugeben.

Wir unterstútzen hier gerne mit individueller Entwicklung oder passenden Schulungen zur Konfiguration, Anpassung und Erweiterung von Keycloak.

Unsere Serie

In dieser Serie zeigen wir euch die Umsetzung passwortloser Authenfizierungsverfahren mit Keycloak:




Zu den Themen Security, Passwordless und Keycloak bieten wir sowohl Beratung, Entwicklungsunterstützung als auch passende Schulungen an:

Auch für Ihren individuellen Bedarf können wir Workshops und Schulungen anbieten. Sprechen Sie uns gerne an.

Feedback oder Fragen zu einem Artikel - per Twitter @triondevelop oder E-Mail freuen wir uns auf eine Kontaktaufnahme!

Los geht's!

Bitte teilen Sie uns mit, wie wir Sie am besten erreichen können.