Passschlüssel

Ein Passkey ermöglicht es jemandem, sich mit seinem Fingerabdruck, Gesichts- oder Geräte-PIN anzumelden, anstatt ein Passwort einzugeben. Er wird auf dem Gerät, im Passwortmanager oder auf dem Handy gespeichert, funktioniert nur auf der Seite, für die er erstellt wurde, und kann nicht gephishingt oder anderswo wiederverwendet werden. Power Portals Pro fügt Passkeys zu den lokalen Konten eines Portals sowohl auf React als auch auf Blazor hinzu: Nutzer fügen sie auf ihrer Kontoseite hinzu und melden sich dann mit einem einzelnen Schritt ein.

Passschlüssel ausschalten

Passkeys sind überall dort aktiviert, wo lokale Konten sind (LocalAccountsEnabled, standardmäßig eingeschaltet): Ein Passkey ist eine lokale Zugangsinformation, die für einen Kontakt wie ein Passwort gespeichert wird. Für ein Portal, das sie nicht anbieten sollte, setzen PasskeysEnabled AuthClientOptions Sie auf false in Program.cs. Deaktiviert stoppt der Server die Passkey-Routen und verweigert die Passkey-Anmeldung, die Kontoseiten zeigen sie nicht mehr an, und bereits gespeicherte Passkeys können nicht mehr verwendet werden.

Wichtig

Passkeys werden in der ppp_passkey Tabelle gespeichert, die die verwaltete Power Portals Pro Lösung bereitstellt. Importiere die Lösung, bevor die Kontoseiten Passkeys anbieten, und stelle sicher, dass der Anwendungsbenutzer des Portals die ausgelieferte Anwendungsbenutzerrolle innehat, die seine Rechte in der Tabelle übernimmt.

Auf den Kontoseiten

Die Kontoseiten, die von den Projektvorlagen generiert werden, zeigen Passkeys an, wann immer sie aktiviert sind: einen Anmelde-Button mit Passkey-Button auf der Login-Seite neben dem Pass-Formular und einen Passkey-Bereich auf der Profilseite, in dem der Nutzer seine Passkeys hinzufügt, umbenennt und entfernt. Beide werden von GET /api/auth/options, oder AuthClientOptions auf einer Blazor-Server-Seite gelesen passkeysEnabled und zeigen nichts, solange Passkeys deaktiviert sind.

Die Komponenten

Zwei Komponenten auf beiden Stacks erledigen die Arbeit. PasskeySignInButton Meldet sich mit einem von der Person gewählten Passkey an und rendert in einem Browser nichts, was keine Passkeys verwenden kann. PasskeyManager Listet die Passkeys des angemeldeten Benutzers auf und erlaubt ihm, sie hinzuzufügen, umzubenennen und zu entfernen. Zeigt sie nur an, solange Passkeys aktiviert sind.

Reagieren

Blazor

Nach der Anmeldung lädt der Blazor-Button die Seite neu bei ReturnUrl, sodass alles darauf den Benutzer erkennt. OnResult Die Seite übergibt die Ergebnisse, die sie selbst verwaltet, wie zum Beispiel ein gesperrtes Konto. Der Browser-Teil der Zeremonie läuft in den eigenen Skripten der Komponenten, sodass sie unter Blazor Server, WebAssembly und Auto ähnlich funktionieren.

Wie eine Zeremonie funktioniert

Jede Passkey-Operation besteht aus zwei Anfragen, die auf der Passkey-Unterstützung ASP.NET Core Identity basieren: Die erste gibt die Optionen zurück, an die der Browser weitergibt navigator.credentials, und die zweite sendet zurück, was der Browser beantwortet hat. Identity behält die Herausforderung zwischen ihnen in einem Cookie.

Sicherheit

Anmerkung

Browser erlauben Passkeys nur bei sicheren Ursprüngen: https, oder localhost während der Entwicklung.