Webauthn RFC
Dieses Thema zielt darauf ab, die Ziele des Discourse-Projekts rund um die FIDO2-/Webauthn-Authentifizierung zu dokumentieren.
Warum?
Die Unterstützung von Webauthn in Discourse erhöht die Sicherheit von Benutzerkonten und ermöglicht leicht zugängliche kontos ohne Passwort, die die sicheren Funktionen ihrer Geräte nutzen, wie z. B. einen Fingerabdruckleser auf einem Smartphone.
Authentifizierungsmethoden
- Webauthn als zweite Faktor-Authentifizierung (funktioniert als Alternative zu Google Authenticator)
- Webauthn als erster Faktor-Authentifizierung (funktioniert als Alternative zur sozialen Anmeldung)
- Webauthn als Mehrfaktor-Authentifizierung (Anmeldung ohne Benutzername)
Webauthn als zweite Faktor-Authentifizierung
Dies ermöglicht es einem Discourse-Benutzer, der bereits ein aktives Konto hat, Webauthn als 2FA zu verwenden, wobei wir derzeit nur TOTP unterstützen.
Jede Webauthn-Methode kann hier funktionieren, sei es Geräte-Biometrie (Fingerabdruckleser unter Android, Windows Hello auf Laptops), ein sicherer Chip im Gerät (TPM, Secure Enclave) oder ein Hardware-Schlüssel (wie ein Yubikey).
Dies steht jedem Benutzer zur Verfügung, der mit folgenden Systemen browst:
- Microsoft Edge unter Windows mit Windows Hello (mit Gesichtserkennung, Fingerabdruckleser oder PIN)
- Chrome unter macOS mit Touch ID
- Android-Telefon
- Laptop/Desktop/Telefon + physischer Schlüssel (Yubikey, Google Titan)
Webauthn als erste Faktor-Authentifizierung (Konten ohne Passwort)
Ermöglicht einem Benutzer, sich mit Webauthn als Alternative zu einem Passwort bei seinem Discourse-Konto anzumelden. Wenn eine Authentifizierung des ersten Faktors eingerichtet ist, wird der Benutzer aufgefordert, den Authentifizierer anstelle eines Passworts zu verwenden.
Die gleichen Authentifizierungsmethoden für die Authentifizierung des zweiten Faktors funktionieren auch für die Authentifizierung des ersten Faktors: Biometrie, sicherer Chip oder Hardware-Schlüssel.
Registrierungsablauf
Kein Passwortfeld
Anmeldeablauf
Webauthn als Mehrfaktor-Authentifizierung (Anmeldungen ohne Benutzername)
Stellt eine alternative Anmeldemethode bereit, die nur nach einer Webauthn-Eingabe fragt. Der registrierte Sicherheitsschlüssel übermittelt zusätzlich Benutzer-ID-Informationen an den Discourse-Server.
Diese Authentifizierungsmethode erfordert derzeit einen modernen Authentifizierungsschlüssel (z. B. Yubikey 5) sowie Google Chrome 76+, da sie auf einer Funktion namens „Resident Keys“ basiert. Da dies Daten auf dem Authentifizierer speichert, kann es Einschränkungen geben. Beispielsweise kann ein Yubikey 5C nur bis zu 25 davon speichern.
Registrierungsablauf
Diese Abläufe sind eine Weiterentwicklung des Ablaufs für passwortlose Anmeldungen und stellen keinen separaten Anmeldeablauf dar. Dies ermöglicht eine iterative Implementierung.
Kein Passwortfeld, zusätzliches Kontrollkästchen für die Verwendung von Resident Keys
Anmeldeablauf
Wenn der Benutzername leer gelassen wird, versuchen wir, eine
user_id vom Authentifizierer abzurufen.
Referenzen
Demos
https://webauthndemo.appspot.com/
Ressourcen
https://medium.com/@herrjemand/introduction-to-webauthn-api-5fd1fb46c285
























