sgcAuth Funktionsmatrix: OAuth2, JWT & WebAuthn | eSeGeCe

sgcAuth Funktionsmatrix

Alles, was sgcAuth kann, aufgeschlüsselt nach den zwei Client-Komponenten, den Grant-Typen und Claims, die sie umsetzen, und der WebAuthn-Fähigkeit, die das Paket zusammen mit sgcCustomIndy freischaltet. Jede Fähigkeit arbeitet in Delphi und C++ Builder identisch, und jede Lizenz enthält den vollständigen Quellcode.

OAuth2

Fünf Grant-Typen, eine Komponente

JWT

Signieren, anhängen oder verifizieren

WebAuthn

Passkeys, über sgcCustomIndy

Standards & Plattformen

Delphi 7 bis 13, C++ Builder

sgcAuth ist in sich geschlossen. Es bringt die sgcWebSockets Core Runtime mit, es ist also kein Add-on für den OAuth2- und den JWT-Client.

Auch in sgcWebSockets enthalten. Sowohl der OAuth2 Client als auch der JWT Client sind außerdem ab der Standard-Edition in sgcWebSockets enthalten. All-Access enthält alles. sgcAuth ist das eigenständige Paket für Teams, die nur die Authentifizierungs-Clients brauchen.

Zwei Paletten-Komponenten

Zwei Seiten desselben Problems, registriert auf der Palettenseite SGC Auth.

KomponenteKlasseAufgabeBeschreibung
OAuth2 ClientTsgcHTTP_OAuth2_ClientEin Token holenAuthorization Code, PKCE, Client Credentials, Resource Owner Password und Device Code gegen jeden OAuth2-/OIDC-Anbieter, mit eingebautem lokalem Redirect-Server.
JWT ClientTsgcHTTP_JWT_ClientEin Token signierenErstellt, signiert und verifiziert JSON Web Tokens, eigenständig oder als Bearer-Token-Quelle für TsgcWebSocketClient, TsgcHTTP1Client und TsgcHTTP2Client.

Fünf Grant-Typen, eine Komponente

TsgcHTTP_OAuth2_Client deckt OAuth 2.0 (RFC 6749) durchgängig ab: Sie startet den Flow, fängt die Weiterleitung ab, tauscht den Code gegen ein Token und verwaltet das Token danach.

FähigkeitAPIHinweise
Authorization CodeOAuth2Options.GrantType := auth2CodeDer Standard-Flow für vertrauenswürdige serverseitige Webanwendungen, die ein Client-Secret halten können.
Authorization Code + PKCEauth2CodePKCE (RFC 7636)Derselbe Flow mit einem Proof Key for Code Exchange, für native, mobile und Single-Page-Anwendungen, die kein Secret aufbewahren können.
Client Credentialsauth2ClientCredentialsServer-zu-Server-Aufrufe ohne beteiligten Benutzer: Daemons und Service-Konten.
Resource Owner Passwordauth2ResourceOwnerPasswordDie Anwendung erfasst das Passwort des Benutzers direkt und tauscht es gegen ein Token.
Device Codeauth2DeviceCode (RFC 8628)Für eingabebeschränkte Geräte, Smart-TVs, Media-Konsolen, IoT: zeigt einen Benutzercode, den die Person auf einem zweiten Gerät eingibt.
Client-IdentitätOAuth2Options.ClientId, ClientSecret, Username, PasswordSetze sie gemäß der API-Spezifikation deines Anbieters; Username/Password decken Anbieter ab, die Basic Authentication am Token-Endpunkt verlangen.
Anbieter-EndpunkteAuthorizationServerOptions.AuthURL, TokenURL, Scope, RevocationURL, IntrospectionURLDie URLs und die Scope-Liste, die die OAuth2-/OIDC-Dokumentation deines Anbieters veröffentlicht.
Social-PresetsTsgcHTTP_OAuth2_Client_Google, TsgcHTTP_OAuth2_Client_MicrosoftFertige Abkömmlinge, die die Google- und Microsoft-Endpunkte sowie -Scopes vorkonfigurieren.
Lokaler Redirect-ListenerLocalServerOptions.IP, Port, RedirectURLDer kleine HTTP-Server, den die Komponente startet, um die Authorization-Code-Weiterleitung zu empfangen; Standard ist Port 8080, oder 0, um für Desktop-Anwendungen einen zufälligen Port zu wählen.
Den Flow ausführenStart, StopStart öffnet den Systembrowser (oder stellt den Device Code aus) und beginnt den konfigurierten Grant; Stop bricht ihn ab und beendet den lokalen Listener.
RefreshRefreshTauscht ein Refresh-Token gegen ein neues Access-Token, ohne einen weiteren Browser-Roundtrip.
Widerrufen & IntrospektionRevoke (RFC 7009), Introspect (RFC 7662)Ein Token ungültig machen, oder seinen Status und seine Metadaten beim Anbieter abfragen.
DPoPDPoPOptions, GenerateDPoPKeyPair, OnDPoPSignDemonstrating Proof-of-Possession (RFC 9449) Schlüsselmaterial und Signierung, für Anbieter, die Tokens an ein Schlüsselpaar binden.
HTTP-TransportHTTPClientOptionsTLS- und Logging-Konfiguration für den internen HTTP-Client, der an die Token-, Revocation- und Introspection-Endpunkte POSTet.
Lifecycle-EreignisseOnBeforeAuthorizeCode, OnAfterAuthorizeCode, OnBeforeAccessToken, OnAfterAccessToken, OnBeforeRefreshToken, OnAfterRefreshTokenVorher-/Nachher-Paare rund um jeden Schritt des Flows.
Fehler-EreignisseOnErrorAccessToken, OnErrorAuthorizeCode, OnErrorRefreshToken, OnErrorRevokeToken, OnErrorIntrospectTokenJe eines pro Fehlerpunkt im Flow, jedes mit dem Fehler, der Beschreibung und der URI des Anbieters.
Device-Code-EreignisseOnDeviceCode, OnDeviceCodeExpiredLiefert den anzuzeigenden Benutzercode und die Verifizierungs-URI, und feuert, wenn der Benutzer die Autorisierung nicht rechtzeitig abschließt.

Signieren, anhängen oder verifizieren

TsgcHTTP_JWT_Client implementiert RFC 7519 (JSON Web Token), RFC 7515 (JWS) und RFC 7516 (JWE) über eine einzige JWTOptions-Eigenschaft.

FähigkeitAPIHinweise
HeaderJWTOptions.Header.alg, typ, kidDer JOSE-Header. alg wählt jwtHS256/384/512, jwtRS256/384/512 oder jwtES256/384/512; zusätzliche Felder gehen über Header.AddKeyValue.
Payload / ClaimsJWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jtiDie registrierten RFC-7519-Claims; benutzerdefinierte Claims werden mit Payload.AddKeyValue ergänzt.
Signierschlüssel-MaterialJWTOptions.Algorithms.HS.Secret, RS.PrivateKey, ES.PrivateKeyGemeinsames Secret für HMAC, PEM-kodierter privater Schlüssel für RSA oder ECDSA, ausgewählt über Header.alg.
Auto-RefreshJWTOptions.RefreshTokenAfterIst der Wert größer als null, aktualisiert Sign iat automatisch und berechnet exp neu; 0 erzeugt das Token bei jeder Anfrage neu.
Eigenständig signierenSignErstellt, signiert und liefert das kodierte Token (header.payload.signature) als einzelne Zeichenfolge zurück, ohne HTTP- oder WebSocket-Client.
An einen Client anhängenStart, Client.Authentication.Token.JWTStart signiert das konfigurierte JWT und liefert es der Host-Komponente als Bearer-Token; einmal auf Authentication.Token.JWT gesetzt, geht jede Anfrage signiert hinaus.
Funktioniert mitTsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2ClientJede der drei Komponenten akzeptiert einen TsgcHTTP_JWT_Client als Bearer-Token-Quelle über Authentication.Token.
OpenSSL-KonfigurationJWTOptions.OpenSSL_OptionsAPI-Version und Bibliothekspfad, die von den RS- und ES-Algorithmen verwendet werden (APIVersion, LibPath, LibPathCustom, UnixSymLinks).

Passwortlose Anmeldung, mit einem Stück mehr

WebAuthn ist Teil der sgcAuth-Geschichte, aber es ist keine dritte registrierte Komponente in diesem Paket. Es wird vom sgcWebSockets-WebAuthn-Server bedient, und es braucht sgcCustomIndy darunter.

BereichDetail
Was es istW3C Web Authentication Level 2 (WebAuthn): passwortlose Anmeldung mit Passkeys und FIDO2-Sicherheitsschlüsseln, unterstützt von TsgcWSAPIServer_WebAuthn.
Wo es lebtTsgcWSAPIServer_WebAuthn ist eine serverseitige Komponente, Teil von sgcWebSockets Enterprise und All-Access, kein von diesem Paket registrierter Client.
Was es brauchtDen gepatchten Indy-Build, den sgcCustomIndy als Add-on für sgcWebSockets Core liefert.
Wie es hinzugefügt wirdDie Bestellseite fügt sgcCustomIndy beim Bestellen von sgcAuth automatisch zu deinem Warenkorb hinzu. Besitzt du bereits eine Lizenz? Entferne die Position beim Checkout, in beiden Fällen entstehen keine Zusatzkosten.
Client-SeiteEine browserseitige JavaScript-Anwendung steuert die WebAuthn-Zeremonie; sgcHTML liefert eine fertige WebAuthn-Login-UI-Komponente, die mit dem Server zusammenspielt.

RFCs, Compiler und Zielplattformen

Standardisierte Spezifikationen, und derselbe Quellcode über jeden unterstützten Compiler hinweg.

BereichDetail
OAuth2-StandardsOAuth 2.0 (RFC 6749), PKCE (RFC 7636), Device Authorization Grant (RFC 8628), Token Revocation (RFC 7009), Token Introspection (RFC 7662), DPoP (RFC 9449).
JWT-StandardsJSON Web Token (RFC 7519), JSON Web Signature (RFC 7515), JSON Web Encryption (RFC 7516).
WebAuthn-StandardWeb Authentication Level 2 (W3C), über den sgcWebSockets-WebAuthn-Server.
PlattformenBeide Clients sind reines HTTPS und lokales Signieren, jede Delphi-Plattform ist also abgedeckt: Windows Win32/Win64, Linux 64-Bit, macOS, iOS und Android.
CompilerDelphi und C++ Builder 7 bis 13.
EditionenDer OAuth2 Client und der JWT Client sind außerdem ab der Standard-Edition in sgcWebSockets enthalten, und All-Access enthält alles.
LizenzierungEigenständig. Die sgcWebSockets Core Runtime ist mitgeliefert und der vollständige Quellcode ist enthalten.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Baue mit sgcAuth

Lade die kostenlose Testversion herunter und hole dir dein erstes Access-Token oder signiertes JWT aus Delphi oder C++ Builder.