Matrice delle funzionalità di sgcAuth: OAuth2, JWT e WebAuthn | eSeGeCe

sgcAuth matrice delle funzionalità

Tutto quello che fa sgcAuth, mappato sui due componenti client, i grant type e le claim che implementano, e la funzionalità WebAuthn che il pacchetto sblocca insieme a sgcCustomIndy. Ogni funzionalità si comporta allo stesso modo in Delphi e in C++ Builder, e ogni licenza include il codice sorgente completo.

OAuth2

Cinque grant type, un solo componente

JWT

Firma, allega o verifica

WebAuthn

Passkey, tramite sgcCustomIndy

Standard e piattaforme

Da Delphi 7 a 13, C++ Builder

sgcAuth è autosufficiente. Viene distribuito con il runtime sgcWebSockets Core incluso, quindi non è un componente aggiuntivo per i client OAuth2 e JWT.

Anche dentro sgcWebSockets. Sia il client OAuth2 sia il client JWT sono inclusi anche nelle edizioni di sgcWebSockets a partire dalla Standard. All-Access include tutto. sgcAuth è il package autonomo per i team che hanno bisogno solo dei client di autenticazione.

Due componenti nella palette

Due facce dello stesso problema, registrate sulla pagina della palette SGC Auth.

ComponenteClasseCompitoDescrizione
OAuth2 ClientTsgcHTTP_OAuth2_ClientOttieni un tokenGrant Authorization Code, PKCE, Client Credentials, Resource Owner Password e Device Code contro qualsiasi provider OAuth2/OIDC, con un server locale di redirect integrato.
JWT ClientTsgcHTTP_JWT_ClientFirma un tokenCrea, firma e verifica JSON Web Token, in autonomia o come sorgente del Bearer token per TsgcWebSocketClient, TsgcHTTP1Client e TsgcHTTP2Client.

Cinque grant type, un solo componente

TsgcHTTP_OAuth2_Client copre OAuth 2.0 (RFC 6749) end to end: avvia il flusso, intercetta il redirect, scambia il codice con un token e gestisce il token in seguito.

FunzionalitàAPINote
Authorization CodeOAuth2Options.GrantType := auth2CodeIl flusso standard per applicazioni web server-side affidabili che possono conservare un client secret.
Authorization Code + PKCEauth2CodePKCE (RFC 7636)Lo stesso flusso con una Proof Key for Code Exchange, per app native, mobile e single-page che non possono conservare un secret.
Client Credentialsauth2ClientCredentialsChiamate da server a server senza un utente nel mezzo: demoni e account di servizio.
Resource Owner Passwordauth2ResourceOwnerPasswordL'applicazione raccoglie direttamente la password dell'utente e la scambia con un token.
Device Codeauth2DeviceCode (RFC 8628)Per dispositivi con input limitato, smart TV, console multimediali, IoT: mostra un codice utente che la persona inserisce su un secondo dispositivo.
Identità del clientOAuth2Options.ClientId, ClientSecret, Username, PasswordDa impostare secondo le specifiche API del tuo provider; Username/Password coprono i provider che richiedono Basic Authentication sull'endpoint del token.
Endpoint del providerAuthorizationServerOptions.AuthURL, TokenURL, Scope, RevocationURL, IntrospectionURLGli URL e la lista di scope pubblicati nella documentazione OAuth2/OIDC del tuo provider.
Preset socialTsgcHTTP_OAuth2_Client_Google, TsgcHTTP_OAuth2_Client_MicrosoftDiscendenti già pronti che preconfigurano gli endpoint e gli scope di Google e Microsoft.
Listener di redirect localeLocalServerOptions.IP, Port, RedirectURLIl piccolo server HTTP che il componente avvia per ricevere il redirect del codice di autorizzazione; predefinito sulla porta 8080, oppure 0 per scegliere una porta casuale nelle app desktop.
Esegui il flussoStart, StopStart apre il browser di sistema (o emette il device code) e avvia il grant configurato; Stop lo interrompe e chiude il listener locale.
RefreshRefreshScambia un refresh token con un nuovo access token senza un altro passaggio dal browser.
Revoca e introspezioneRevoke (RFC 7009), Introspect (RFC 7662)Invalida un token, oppure interroga il suo stato e i suoi metadati presso il provider.
DPoPDPoPOptions, GenerateDPoPKeyPair, OnDPoPSignMateriale della chiave e firma per la Demonstrating Proof-of-Possession (RFC 9449), per i provider che legano i token a una coppia di chiavi.
Trasporto HTTPHTTPClientOptionsConfigurazione TLS e log per il client HTTP interno che invia le POST agli endpoint di token, revoca e introspezione.
Eventi del ciclo di vitaOnBeforeAuthorizeCode, OnAfterAuthorizeCode, OnBeforeAccessToken, OnAfterAccessToken, OnBeforeRefreshToken, OnAfterRefreshTokenCoppie prima/dopo attorno a ogni passo del flusso.
Eventi di erroreOnErrorAccessToken, OnErrorAuthorizeCode, OnErrorRefreshToken, OnErrorRevokeToken, OnErrorIntrospectTokenUno per ogni punto di fallimento del flusso, ciascuno con l'errore, la descrizione e l'URI del provider.
Eventi Device CodeOnDeviceCode, OnDeviceCodeExpiredConsegna il codice utente e l'URI di verifica da mostrare, e scatta se l'utente non completa l'autorizzazione in tempo.

Firma, allega o verifica

TsgcHTTP_JWT_Client implementa la RFC 7519 (JSON Web Token), la RFC 7515 (JWS) e la RFC 7516 (JWE) attraverso un'unica proprietà JWTOptions.

FunzionalitàAPINote
HeaderJWTOptions.Header.alg, typ, kidL'header JOSE. alg sceglie tra jwtHS256/384/512, jwtRS256/384/512 o jwtES256/384/512; i campi extra passano da Header.AddKeyValue.
Payload / claimJWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jtiLe claim registrate dalla RFC 7519; le claim personalizzate si aggiungono con Payload.AddKeyValue.
Materiale della chiave di firmaJWTOptions.Algorithms.HS.Secret, RS.PrivateKey, ES.PrivateKeySecret condiviso per HMAC, chiave privata in formato PEM per RSA o ECDSA, selezionati da Header.alg.
Aggiornamento automaticoJWTOptions.RefreshTokenAfterSe maggiore di zero, Sign aggiorna iat e ricalcola exp automaticamente; 0 rigenera il token a ogni richiesta.
Firma indipendenteSignCrea, firma e restituisce il token codificato (header.payload.signature) come singola stringa, senza bisogno di un client HTTP o WebSocket.
Collegamento a un clientStart, Client.Authentication.Token.JWTStart firma il JWT configurato e lo consegna come Bearer token al componente ospite; impostalo una volta su Authentication.Token.JWT e ogni richiesta parte firmata.
Funziona conTsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2ClientOgnuno dei tre accetta un TsgcHTTP_JWT_Client come sorgente del Bearer token tramite Authentication.Token.
Configurazione OpenSSLJWTOptions.OpenSSL_OptionsVersione API e percorso della libreria usati dagli algoritmi RS ed ES (APIVersion, LibPath, LibPathCustom, UnixSymLinks).

Accesso passwordless, con un pezzo in più

WebAuthn fa parte della proposta di sgcAuth, ma non è un terzo componente registrato in questo pacchetto. È servito dal server WebAuthn di sgcWebSockets, e richiede sgcCustomIndy sotto.

AmbitoDettaglio
Cos'èW3C Web Authentication Level 2 (WebAuthn): accesso passwordless con passkey e chiavi di sicurezza FIDO2, gestito da TsgcWSAPIServer_WebAuthn.
Dove si trovaTsgcWSAPIServer_WebAuthn è un componente lato server, parte di sgcWebSockets Enterprise e All-Access, non un client registrato da questo pacchetto.
Cosa richiedeLa build Indy modificata che sgcCustomIndy distribuisce come componente aggiuntivo per sgcWebSockets Core.
Come viene aggiuntoLa pagina d'ordine aggiunge sgcCustomIndy al tuo carrello automaticamente quando ordini sgcAuth. Possiedi già una licenza? Rimuovi la riga al pagamento, nessun costo extra in entrambi i casi.
Lato clientUn'applicazione JavaScript lato browser pilota la cerimonia WebAuthn; sgcHTML distribuisce un componente UI di login WebAuthn già pronto che si abbina al server.

RFC, compilatori e target

Specifiche standard, e lo stesso sorgente su ogni compilatore supportato.

AmbitoDettaglio
Standard OAuth2OAuth 2.0 (RFC 6749), PKCE (RFC 7636), Device Authorization Grant (RFC 8628), Token Revocation (RFC 7009), Token Introspection (RFC 7662), DPoP (RFC 9449).
Standard JWTJSON Web Token (RFC 7519), JSON Web Signature (RFC 7515), JSON Web Encryption (RFC 7516).
Standard WebAuthnWeb Authentication Level 2 (W3C), tramite il server WebAuthn di sgcWebSockets.
PiattaformeEntrambi i client sono HTTPS puro e firma locale, quindi ogni piattaforma Delphi è coperta: Windows Win32/Win64, Linux a 64 bit, macOS, iOS e Android.
CompilatoriDelphi e C++ Builder dalla versione 7 alla 13.
EdizioniIl client OAuth2 e il client JWT sono inclusi anche in sgcWebSockets a partire dalla Standard, e All-Access include tutto.
LicenzeAutonomo. Il runtime sgcWebSockets Core è incluso e il codice sorgente completo fa parte della fornitura.
La scelta più conveniente: All-AccessTutti i prodotti eSeGeCe, con Supporto Premium incluso, a partire da €1,059/anno.
Vedi i prezzi All-Access

Costruisci con sgcAuth

Scarica la versione di prova gratuita e ottieni il tuo primo access token o JWT firmato da Delphi o C++ Builder.