Neuigkeiten von trion.
Immer gut informiert.

Passkeys mit Keycloak

WebAuthn

Seit Version 23 werden Passkeys in der Dokumentation von Keycloak offiziell erwähnt. Keycloak übernimmt dabei die Rolle einer Passkeys Relying Party (RP). Zur Umsetzung von Passkeys mit Keycloak nutzt man die Unterstützung von WebAuthn in Keycloak, die es schon länger gibt. Für zukünftige Versionen von Keycloak ist damit zu rechnen, dass die Unterstützung weiter ausgebaut wird.

Aktuell werden von Keycloak sowohl über mehrere Geräte bzw. die Cloud synchronisierte Passkeys als auch gerätegebundene Passkeys für die Same-Device und Cross-Device Authentication (CDA) unterstützt.

Die Möglichkeiten zum Einsatz von Passkeys sind dabei immer stark von der jeweiligen Umgebung abhängig: Je nachdem wo und wie ein Passkey erzeugt worden ist, kann er in unterschiedlichen Szenarien genutzt werden.

So kann z.B. ein Passkey, der auf einem iOS- oder iPadOS-Gerät erzeugt worden ist auf dem Gerät genutzt werden, auf dem er erzeugt wurde oder auf iPhones, iPads oder Macs, die dieselbe Apple ID nutzen. Weiterhin kann er über FIDO Cross-Device Authentication (CDA) genutzt werden, um sich auf anderen Macs zu authentifizieren. Ebenso kann er CDA verwendet werden, um sich über Chrome oder Edge unter Windows oder Ubuntu zu authentifizieren.

Eine Übersicht über die möglichen Konstellationen gibt es hier.

Ausblick: Bessere User Experience

Bisher war es schwierig wirklich benutzerfreundliche Oberflächen für WebAuthn bzw. Passkeys zu entwickeln, die sowohl die Authentifizierung mit klassischen Mitteln wie Benutzername und Passwort als auch die Anmeldung mit Passkey unterstützen. Grund dafür ist, dass eine leichtgewichtige Möglichkeit fehlte, mit sich abzufragen lässt, ob WebAuthn Credentials für die besuchte Webseite bereits vorhanden sind.

Viele Umsetzungen nutzen daher immer noch spezielle Buttons, um die Authentifizierung über WebAuthn zu starten oder erfordern die vorherige Eingabe eines Benutzernamens, um serverseitig nachzusehen, ob für den Benutzer WebAuthn Keys hinterlegt sind.

Um diesen Bereich zu verbessern, wurde auf Ebene der Spezifikation mit WebAuthn Conditional UI die Möglichkeit geschaffen, über eine API bestimmte UI-Elemente nur dann anzuzeigen, wenn der Benutzer über WebAuthn Credentials für die aktuell besuchte Webseite verfügt. Damit lassen sich benutzerfreundliche Oberflächen auch für Authentifizierungsabläufe schaffen, die sowohl die Authentifizierung über Benutzername und Passwort als auch die Passwort- (und ggf. Benutzernamen-)lose Authentifizierung unterstützen.

Für die Zukunft ist geplant die WebAuthn Conditional UI in Keycloak über einen erweiterten WebAuthn Authenticator zu unterstützen (#24264).

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.