WebAuthn / Passkeys

Dodaj uwierzytelnianie bezhasłowe oparte na kluczach passkey do serwera Delphi. Ceremonie rejestracji i uwierzytelniania WebAuthn Level 2 / FIDO2, weryfikacja atestacji, hooki przechowywania poświadczeń.

TsgcWSAPIServer_WebAuthn

Implementuje stronę serwera relying-party WebAuthn — tworzy wyzwania poświadczeń, weryfikuje odpowiedzi navigator.credentials, analizuje oświadczenia atestacji i waliduje podpisy asercji.

Klasa komponentu

TsgcWSAPIServer_WebAuthn

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Enterprise

Zamontuj relying party i przechowuj poświadczenia

Wrzuć TsgcWSAPIServer_WebAuthn na TsgcWebSocketHTTPServer, skonfiguruj RpId/RpName, następnie obsłuż OnRegistrationVerify i OnAuthenticationVerify, aby utrwalać poświadczenia.

uses
  sgcWebSocket, sgcWebSocket_Server_APIs;

var
  Server: TsgcWebSocketHTTPServer;
  WebAuthn: TsgcWSAPIServer_WebAuthn;
begin
  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 8443;
  Server.SSL  := True;

  WebAuthn := TsgcWSAPIServer_WebAuthn.Create(nil);
  WebAuthn.Server := Server;
  WebAuthn.RelyingParty.Id   := 'example.com';
  WebAuthn.RelyingParty.Name := 'Example RP';

  WebAuthn.OnRegistrationVerify := procedure(Sender: TObject;
    const aRequest: TsgcWebAuthn_RegistrationVerify_Request;
    const aRegistration: TsgcWebAuthn_Registration; const aError: string)
  begin
    // store aRegistration.CredentialId / publicKey / counter / userHandle
  end;

  Server.Active := True;
end;
// uses: sgcWebSocket, sgcWebSocket_Server_APIs
TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
TsgcWSAPIServer_WebAuthn *WebAuthn = new TsgcWSAPIServer_WebAuthn(this);
WebAuthn->Server = Server;
WebAuthn->RelyingParty->Id   = "example.com";
WebAuthn->RelyingParty->Name = "Example RP";
Server->Active = true;

Co jest w środku

Serwer relying-party przekształcający proces Delphi w endpoint uwierzytelniania obsługujący passkey.

Ceremonia rejestracji

OnRegistrationOptions wydaje PublicKeyCredentialCreationOptions; przeglądarka wywołuje navigator.credentials.create(); OnRegistrationVerify waliduje atestację i zwraca nowy rekord poświadczenia.

Ceremonia uwierzytelniania

OnAuthenticationOptions wydaje PublicKeyCredentialRequestOptions z wcześniej zapisanymi ID poświadczeń; OnAuthenticationVerify waliduje podpis asercji używając zapisanego klucza publicznego.

Parsowanie atestacji

Obsługuje formaty oświadczeń atestacji: none, packed, fido-u2f, tpm, android-key, android-safetynet i apple.

Walidacja licznika

Śledzi signCount dla każdego poświadczenia w celu wykrycia sklonowanych authenticatorów — jeśli licznik się cofa, OnAuthenticationVerify zgłasza błąd, na który możesz zareagować.

Weryfikacja użytkownika

UserVerification można ustawić na required, preferred lub discouraged dla każdej ceremonii — krok walidacji wymusza wybór.

Rekordy poświadczeń

OnAuthenticationOptions przekazuje Ci uchwyt użytkownika, abyś zwrócił właściwą listę allowCredentials dla trwającego logowania — sposób przechowywania projektujesz sam.

Specyfikacje i odniesienia

Autorytatywne źródła dla standardów implementowanych przez ten komponent.

Dokumentacja i dema

Przejdź do dokumentacji komponentu, pobierz gotowy projekt demo i wersję próbną.

Pomoc online — TsgcWSAPIServer_WebAuthn Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demo — Demos\20.HTTP_Protocol\12.WebAuthn Gotowy do uruchomienia projekt przykładowy. Dołączony do pakietu sgcWebSockets — pobierz wersję próbną poniżej.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odwołania do źródeł — tylko dla tego komponentu.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.

Gotowy do dodania uwierzytelniania passkey?

Pobierz bezpłatną wersję próbną i dodaj passkey WebAuthn / FIDO2 do swojego serwera Delphi.