Tiefer Einblick in den sgcWebSockets WebAuthn-Server

· Komponenten

Die Komponente TsgcWSAPIServer_WebAuthn ist ein Delphi/FPC-Servermodul, das die Relying-Party-Seite des WebAuthn-Protokolls über HTTPS umsetzt. Sie integriert sich in TsgcWebSocketHTTPServer oder TsgcWebSocketServer und stellt REST-ähnliche Endpunkte für Registrierung und Authentifizierung bereit. 

Funktionsweise der Endpunkte

Standardmäßig registriert die Komponente Routen unter /sgcWebAuthn:

ZweckStandard-EndpunktBeschreibung
Registrierungsoptionen/Registration/OptionsDer Client fordert eine Challenge und Relying-Party-Informationen an, bevor er navigator.credentials.create aufruft.
Registrierungsprüfung/Registration/VerifyDer Browser sendet die neuen Anmeldedaten, das Attestation-Objekt und die Client-Daten zur Serverüberprüfung.
Authentifizierungsoptionen/Authentication/OptionsDer Server liefert eine Liste zulässiger Credential-IDs und eine Challenge.
Authentifizierungsprüfung/Authentication/VerifyDer Browser sendet die Assertion (authenticatorData + Signatur) zur Verifizierung.
JavaScript-Helfer/WebauthnLiefert ein Hilfsskript, das die WebAuthn-Standardaufrufe des Browsers kapselt.
Testseite/TestEine einfache HTML-Seite, um die API während der Entwicklung auszuprobieren.


Endpunkte lassen sich über EndpointOptions umbenennen, um zu bestehenden Routing-Schemata zu passen. 

Wichtige Eigenschaften

  1. RelyingParty (RPID / RPName) – Pflichtangabe: DNS-Name, der die logische Domain für Anmeldedaten identifiziert. Achte darauf, dass er zur effektiven Domain deiner Anwendung passt.
  2. Origins & TopOrigins – Mit Semikolon getrennte Listen gültiger Origins. Origins deckt primäre Domains ab; TopOrigins wird beim Einbetten in iFrames verwendet.
  3. AllowCrossOrigins – Wenn auf True gesetzt, dürfen cross-origin iFrames eine Authentifizierung anfordern. Das erfordert eine sorgfältig gepflegte TopOrigins-Liste und serverseitige Validierung.
  4. Algorithms – Unterstützte COSE-Algorithmus-Kennungen (z. B. ES256, RS256, EdDSA). Damit legst du fest, welche Public-Key-Typen der Server akzeptiert.
  5. TimeoutMS – Timeout-Empfehlung an den Client für den Abschluss von WebAuthn-Operationen.
  6. UserVerification – Richtlinie für die Benutzerverifizierung (preferred, required, discouraged).
  7. Attestation – Gibt an, ob keine, indirekte oder direkte Attestation verwendet wird. Direkte Attestation erfordert die Validierung der Attestation-Zertifikatskette.
  8. Metadata Service (MDS) – Ist diese Option aktiviert, zieht die Komponente FIDO-Metadata-Service-Dateien heran, um die Vertrauenswürdigkeit des Authenticator-Modells zu bestätigen. Felder:
    • MDS_FileName – Lokal gecachte JSON-Metadaten (von FIDO heruntergeladen).
    • RootCert_FileName – Root-Zertifikat zur Verifizierung der Metadaten-Signaturen.
  9. ChallengeOptions – Ermöglicht eine eigene Länge und Zufallsquelle für die erzeugten Challenges.
  10. CredentialStorage – Zwar keine direkte Eigenschaft, doch erwartet die Komponente, dass die Anwendung Public Keys, Sign-Counter und User-Handles dauerhaft speichert.

Ereignis-Lebenszyklus

Registrierung

Authentifizierung

Diese Ereignisse ermöglichen feingranulare Kontrolle über jeden Schritt des Protokolls — von der Erzeugung der Optionen bis zur Verarbeitung der Assertions.