Webauthn-Unterstützung

Das ist sehr schön!

Eine kleine Unannehmlichkeit jedoch: Auf Safari/Mac ist die Web-Authentifizierung standardmäßig deaktiviert und nur für Entwickler verfügbar. Wenn sie aktiviert ist, funktioniert sie einwandfrei. Wir sollten jedoch wahrscheinlich eine Meldung oder eine Warnung anzeigen, wenn die Web-Authentifizierung nicht aktiviert ist. Aktuell zeigt die Benutzeroberfläche im Standard-Safari nichts an, dass der Registrierungsprozess nicht funktioniert (in der Konsole erscheint ein Fehler):

11 „Gefällt mir“

Wir können Feature-Detection mit navigator.credentials durchführen, nehme ich an.

9 „Gefällt mir“

Manchen fällt es schwer, den zusätzlichen Aufwand zu rechtfertigen, auch wenn es schön ist :smiley:

7 „Gefällt mir“

Argh, ich habe diese Funktionsprüfung nur bei navigator.credentials.get, nicht bei create durchgeführt. Entschuldigung, das ist schnell behoben!

8 „Gefällt mir“

Der neueste Commit scheint zu funktionieren. Ich konnte gerade auf meinem Android-Handy die Zwei-Faktor-Authentifizierung (mit Fingerabdruck!) nutzen.

6 „Gefällt mir“

Hey Penar, ich habe jetzt eine Lösung dafür. Könntest du sie bitte in Safari testen? [FIX] Check webauthn support when registering security keys by mjrbrennan · Pull Request #8146 · discourse/discourse · GitHub. Ich bin mir nur nicht sicher, ob die von mir verwendete Methode zur Feature-Erkennung auch funktioniert, wenn die Funktion in Safari deaktiviert ist.

9 „Gefällt mir“

Sam war schneller als ich beim Merge, aber das sieht in Safari gut aus. Danke, Martin!

10 „Gefällt mir“

Richtig, aber in diesem Fall ist es ein normaler Teil der Arbeit bei Discourse, daher übernehmen wir die Kosten. Entschuldigung, falls das nicht klar war, aber hoffentlich ist es jetzt verständlich?

9 „Gefällt mir“

Herzlichen Glückwunsch zur Unterstützung von WebAuthn! Es ist interessant zu sehen, dass Sie eine eigene Lösung entwickelt haben, anstatt das webauthn-Gem zu verwenden. Falls Sie uns Feedback dazu geben möchten, würde ich mich sehr freuen, davon zu hören :smiley:

Mir ist aufgefallen, dass Ihre Implementierung nur den Algorithmus -7 (ES256) unterstützt. Plattformauthentifizierer von Windows Hello (unterstützt durch TPM 2.0-Hardware) erfordern jedoch -257 (RS256), wie in der Dokumentation von Microsoft beschrieben. TPM 2.0 ist seit dem 28. Juli 2016 für neue Windows-10-Desktop-Modelle erforderlich, was eine beträchtliche Menge an Hardware darstellt.

Eine Anregung für das Mockup des „Anmeldeablaufs“: WebAuthn verfügt über ein offizielles Logo, das anstelle eines generischen Fingerabdruck-Bildes verwendet werden könnte. Neben dem Fingerabdruck sind auch Gesichtserkennung, Wischmuster oder eine PIN gängige Optionen zur Benutzerüberprüfung.

10 „Gefällt mir“

@Martin_Brennan Hast du dazu Gedanken? :arrow_double_up:

6 „Gefällt mir“

Vielen Dank für das Feedback, Rafe. Wir müssen also den zusätzlichen Algorithmus hier hinzufügen. Und danke auch für den Link zum offiziellen Logo! Mein Gedanke, als ich nur einen Algorithmus festgelegt habe, war, einfach die Mindestanzahl unterstützter Algorithmen hinzuzufügen, damit V1 funktioniert, da ich nicht sicher war bezüglich der Nuancen zwischen allen Algorithmen. Zudem wurde ES256 in allen Beispielen verwendet, die ich finden konnte.

Was die Entscheidung betrifft, das Gem damals nicht zu verwenden: Ich habe mich darüber ziemlich lange Gedanken gemacht und wusste, dass ich zu diesem Zeitpunkt irgendwann nach dieser Entscheidung gefragt werden würde. Ich habe certainly einen Großteil des Codes im Gem durchgearbeitet, um ein besseres Verständnis der Implementierung zu erhalten. Die Hauptgründe waren:

  1. Ich wollte keine zusätzliche Abhängigkeit für Discourse hinzufügen. Jede Gem-Abhängigkeit fügt zusätzlichen Overhead hinzu, egal wie exzellent der Code in diesem Gem sein mag.
  2. Ich wollte ein gutes Verständnis dafür haben, wie dieser kritische Sicherheitsbestandteil von Discourse funktioniert. Ich dachte, dass der Code im Kern von Discourse die Dinge klarer und einfacher erweiterbar machen würde, ohne eine Art „Black Box
16 „Gefällt mir“

Unterstützung für den zusätzlichen RS256-Algorithmus wurde jetzt in FEATURE: Support RS256 algorithm for webauthn by martin-brennan · Pull Request #8385 · discourse/discourse · GitHub zusammengeführt.

14 „Gefällt mir“

Es scheint, dass iOS 13.3 und macOS Catalina 10.15.2 nun auch FIDO2-Authentifizierung unterstützen :partying_face:

Dieses Update enthält außerdem Fehlerbehebungen und weitere Verbesserungen. Dieses Update:

  • Fügt Unterstützung für NFC-, USB- und Lightning-FIDO2-konforme Sicherheitsschlüssel in Safari hinzu
8 „Gefällt mir“

Es ist schade, dass iPhones dafür ein Drittanbieter-Gerät benötigen. Ich hoffe, dass iOS++ dies mit der Geräteauthentifizierung und dem Secure Chip integriert hat, wie Windows, macOS und Android.

9 „Gefällt mir“

Ich bin so aufgeregt, mich jetzt schon nur durch das Ansehen von Discourse einzuloggen!!

Eigentlich bin ich ziemlich überrascht, dass die Unterstützung für integrierte Authentifizierer noch nicht da ist… aber es ist trotzdem eine aufregende Nachricht – ich werde weiterhin die Luft anhalten.

7 „Gefällt mir“

Ich habe eine mögliche UI-Inkonsistenz festgestellt, die die Anzeige der Aktivierung von 2FA für einige Benutzer auf einer gehosteten Instanz von Discourse betrifft:

Die Auflistung aller ‘Mitarbeiter’-Benutzer zeigt nicht, dass mein Konto 2FA aktiviert hat:

  • Die Zusammenfassungsseite des Kontos legt nahe, dass 2FA aktiviert ist, da der Button-Text ‘Zwei-Faktor-Authentifizierung verwalten’ lautet.

  • Bei der Zwei-Faktor-Authentifizierung wird angezeigt, dass ein Sicherheitsschlüssel aktiviert ist und der zweite Faktor deaktiviert werden könnte.

  • Andere Benutzer derselben Instanz, die sich für eine Token-basierte Authentifizierung (ohne Sicherheitsschlüssel) entscheiden, zeigen das Vorhängeschloss-Symbol in der Auflistung ‘alle Benutzer’.

Bitte teilen Sie mir mit, ob es sich um einen UI-Fehler handelt oder ob das Hinzufügen eines Sicherheitsschlüssels allein für 2FA auf dieser Plattform nicht ausreicht.

5 „Gefällt mir“

Ich werde mir das ansehen, aber meine beste Vermutung ist, dass es sich um einen UI-Fehler in der Benutzerliste handelt, falls der eigentliche 2FA-Bereich der Benutzeroberfläche alles korrekt anzeigt. Danke für den Bericht!

9 „Gefällt mir“

Das war das Problem. Der Fix wird hier erstellt, und ich werde ihn so schnell wie möglich zusammenführen: FIX: Admin user list not showing 2FA icon for only security keys enabled by martin-brennan · Pull Request #8839 · discourse/discourse · GitHub

Edit: Das ist jetzt behoben.

11 „Gefällt mir“

Willkommen in der neuen Welt

Apple ist der FIDO Alliance beigetreten (auch bekannt als Fast Identity Online), einer Organisation, der bereits Größen wie Google, Intel, Microsoft und Samsung angehören.

12 „Gefällt mir“

Dies funktioniert unter iOS 14 mit TouchID / FaceID.

11 „Gefällt mir“