sgcAuth-functiematrix: OAuth2, JWT & WebAuthn | eSeGeCe

sgcAuth-functiematrix

Alles wat sgcAuth doet, uitgesplitst over de twee clientcomponenten, de granttypes en claims die ze implementeren, en de WebAuthn-mogelijkheid die het pakket samen met sgcCustomIndy ontgrendelt. Elke mogelijkheid werkt hetzelfde in Delphi en C++ Builder, en elke licentie bevat de volledige broncode.

OAuth2

Vijf granttypes, één component

JWT

Ondertekenen, koppelen of verifiëren

WebAuthn

Passkeys, via sgcCustomIndy

Standaarden & platforms

Delphi 7 tot 13, C++ Builder

sgcAuth is zelfstandig. Het wordt geleverd met de sgcWebSockets Core runtime inbegrepen, dus het is geen add-on voor de OAuth2- en JWT-clients.

Ook in sgcWebSockets. Zowel de OAuth2 Client als de JWT Client zitten ook in sgcWebSockets-edities vanaf Standard. All-Access bevat alles. sgcAuth is het standalone package voor teams die alleen de authenticatieclients nodig hebben.

Twee paletcomponenten

Twee kanten van hetzelfde probleem, geregistreerd op de paletpagina SGC Auth.

ComponentKlasseTaakBeschrijving
OAuth2 ClientTsgcHTTP_OAuth2_ClientEen token ophalenAuthorization Code-, PKCE-, Client Credentials-, Resource Owner Password- en Device Code-grants tegen elke OAuth2/OIDC-provider, met een ingebouwde lokale redirectserver.
JWT ClientTsgcHTTP_JWT_ClientEen token ondertekenenBouwt, ondertekent en verifieert JSON Web Tokens, standalone of als Bearer-tokenbron voor TsgcWebSocketClient, TsgcHTTP1Client en TsgcHTTP2Client.

Vijf granttypes, één component

TsgcHTTP_OAuth2_Client dekt OAuth 2.0 (RFC 6749) van begin tot eind: het start de flow, vangt de redirect op, wisselt de code in voor een token en beheert het token daarna.

MogelijkheidAPIOpmerkingen
Authorization CodeOAuth2Options.GrantType := auth2CodeDe standaardflow voor vertrouwde server-side webtoepassingen die een client secret kunnen bewaren.
Authorization Code + PKCEauth2CodePKCE (RFC 7636)Dezelfde flow met een Proof Key for Code Exchange, voor native, mobiele en single-page apps die geen secret kunnen bewaren.
Client Credentialsauth2ClientCredentialsServer-naar-server-aanroepen zonder gebruiker in de lus: daemons en serviceaccounts.
Resource Owner Passwordauth2ResourceOwnerPasswordDe toepassing verzamelt het wachtwoord van de gebruiker rechtstreeks en wisselt het in voor een token.
Device Codeauth2DeviceCode (RFC 8628)Voor invoerbeperkte apparaten, smart-tv's, mediaconsoles, IoT: toont een gebruikerscode die de persoon op een tweede apparaat invoert.
ClientidentiteitOAuth2Options.ClientId, ClientSecret, Username, PasswordIn te stellen volgens de API-specificatie van je provider; Username/Password dekken providers die Basic Authentication op het token-endpoint vereisen.
Provider-endpointsAuthorizationServerOptions.AuthURL, TokenURL, Scope, RevocationURL, IntrospectionURLDe URL's en scopelijst uit de OAuth2/OIDC-documentatie van je provider.
Sociale presetsTsgcHTTP_OAuth2_Client_Google, TsgcHTTP_OAuth2_Client_MicrosoftKant-en-klare afstammelingen die de Google- en Microsoft-endpoints en -scopes vooraf configureren.
Lokale redirectlistenerLocalServerOptions.IP, Port, RedirectURLDe kleine HTTP-server die het component start om de authorization-code-redirect te ontvangen; standaard poort 8080, of 0 om een willekeurige poort te kiezen voor desktopapps.
De flow uitvoerenStart, StopStart opent de systeembrowser (of geeft de device code uit) en start de geconfigureerde grant; Stop breekt hem af en sluit de lokale listener.
RefreshRefreshWisselt een refresh-token in voor een nieuw access-token zonder nog een browser-omweg.
Intrekken & introspectieRevoke (RFC 7009), Introspect (RFC 7662)Maak een token ongeldig, of vraag de status en metadata ervan op bij de provider.
DPoPDPoPOptions, GenerateDPoPKeyPair, OnDPoPSignDemonstrating Proof-of-Possession (RFC 9449) sleutelmateriaal en ondertekening, voor providers die tokens aan een sleutelpaar binden.
HTTP-transportHTTPClientOptionsTLS- en loggingconfiguratie voor de interne HTTP-client die naar de token-, revocation- en introspection-endpoints POST.
LevenscycluseventsOnBeforeAuthorizeCode, OnAfterAuthorizeCode, OnBeforeAccessToken, OnAfterAccessToken, OnBeforeRefreshToken, OnAfterRefreshTokenVoor/na-paren rond elke stap van de flow.
FouteventsOnErrorAccessToken, OnErrorAuthorizeCode, OnErrorRefreshToken, OnErrorRevokeToken, OnErrorIntrospectTokenEén per faalpunt in de flow, elk met de foutmelding, beschrijving en URI van de provider.
Device Code-eventsOnDeviceCode, OnDeviceCodeExpiredLevert de te tonen gebruikerscode en verificatie-URI, en vuurt als de gebruiker de autorisatie niet op tijd afrondt.

Ondertekenen, koppelen of verifiëren

TsgcHTTP_JWT_Client implementeert RFC 7519 (JSON Web Token), RFC 7515 (JWS) en RFC 7516 (JWE) via één JWTOptions-eigenschap.

MogelijkheidAPIOpmerkingen
HeaderJWTOptions.Header.alg, typ, kidDe JOSE-header. alg kiest jwtHS256/384/512, jwtRS256/384/512 of jwtES256/384/512; extra velden gaan via Header.AddKeyValue.
Payload / claimsJWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jtiDe geregistreerde RFC 7519-claims; custom claims worden toegevoegd met Payload.AddKeyValue.
Sleutelmateriaal voor ondertekeningJWTOptions.Algorithms.HS.Secret, RS.PrivateKey, ES.PrivateKeyGedeelde secret voor HMAC, PEM-gecodeerde private key voor RSA of ECDSA, gekozen via Header.alg.
Automatische vernieuwingJWTOptions.RefreshTokenAfterGroter dan nul: Sign vernieuwt iat en herberekent exp automatisch; 0 genereert het token bij elke request opnieuw.
Zelfstandig ondertekenenSignBouwt, ondertekent en geeft het gecodeerde token (header.payload.signature) terug als één string, geen HTTP- of WebSocket-client nodig.
Koppelen aan een clientStart, Client.Authentication.Token.JWTStart ondertekent de geconfigureerde JWT en levert hem als Bearer-token aan het hostcomponent; stel hem eenmaal in op Authentication.Token.JWT en elke request gaat ondertekend uit.
Werkt metTsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2ClientAlle drie accepteren een TsgcHTTP_JWT_Client als Bearer-tokenbron via Authentication.Token.
OpenSSL-configuratieJWTOptions.OpenSSL_OptionsAPI-versie en bibliotheekpad gebruikt door de RS- en ES-algoritmen (APIVersion, LibPath, LibPathCustom, UnixSymLinks).

Wachtwoordloos aanmelden, met één stuk extra

WebAuthn hoort bij het verhaal van sgcAuth, maar is geen derde geregistreerd component in dit pakket. Het wordt geleverd door de WebAuthn-server van sgcWebSockets, en heeft sgcCustomIndy eronder nodig.

GebiedDetail
Wat het isW3C Web Authentication Level 2 (WebAuthn): wachtwoordloos aanmelden met passkeys en FIDO2-beveiligingssleutels, aangedreven door TsgcWSAPIServer_WebAuthn.
Waar het zich bevindtTsgcWSAPIServer_WebAuthn is een servercomponent, onderdeel van sgcWebSockets Enterprise en All-Access, geen client die door dit pakket wordt geregistreerd.
Wat het nodig heeftDe gepatchte Indy-build die sgcCustomIndy als add-on levert voor sgcWebSockets Core.
Hoe het wordt toegevoegdDe bestelpagina voegt sgcCustomIndy automatisch toe aan je winkelmandje wanneer je sgcAuth bestelt. Heb je al een licentie? Verwijder de regel bij het afrekenen, in beide gevallen zonder extra kosten.
Client-zijdeEen browsergebaseerde JavaScript-toepassing stuurt de WebAuthn-ceremonie aan; sgcHTML levert een kant-en-klaar WebAuthn-inlog-UI-component dat bij de server past.

RFC's, compilers en targets

Standards-track specificaties, en dezelfde broncode voor elke ondersteunde compiler.

GebiedDetail
OAuth2-standaardenOAuth 2.0 (RFC 6749), PKCE (RFC 7636), Device Authorization Grant (RFC 8628), Token Revocation (RFC 7009), Token Introspection (RFC 7662), DPoP (RFC 9449).
JWT-standaardenJSON Web Token (RFC 7519), JSON Web Signature (RFC 7515), JSON Web Encryption (RFC 7516).
WebAuthn-standaardWeb Authentication Level 2 (W3C), via de WebAuthn-server van sgcWebSockets.
PlatformsBeide clients zijn gewone HTTPS en lokale ondertekening, dus elk Delphi-platform is gedekt: Windows Win32/Win64, Linux 64-bit, macOS, iOS en Android.
CompilersDelphi en C++ Builder 7 tot en met 13.
EditiesDe OAuth2 Client en JWT Client zitten ook in sgcWebSockets vanaf Standard, en All-Access bevat alles.
LicentiesStandalone. De sgcWebSockets Core runtime is meegeleverd en de volledige broncode is inbegrepen.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Bouw met sgcAuth

Download de gratis proefversie en haal je eerste access-token of ondertekende JWT op vanuit Delphi of C++ Builder.