sgcAuth: componenti OAuth2, JWT e WebAuthn per Delphi e C++ Builder
Prodotto autonomo OAuth2, JWT e WebAuthn

sgcAuth: componenti OAuth2, JWT e WebAuthn per Delphi e C++ Builder

Due componenti client portano il lato token dell'autenticazione moderna nella tua applicazione. TsgcHTTP_OAuth2_Client esegue i flussi Authorization Code, PKCE, Client Credentials, Resource Owner Password e Device Code contro qualsiasi provider OAuth2/OIDC. TsgcHTTP_JWT_Client crea, firma e verifica JSON Web Token, da solo o come sorgente del Bearer token per i tuoi client WebSocket e HTTP. sgcAuth è autonomo, include il runtime sgcWebSockets Core su cui sono costruiti entrambi i client.

Codice sorgente completo
Da Delphi 7 a 13 e C++ Builder
Runtime incluso sgcWebSockets Core Il runtime HTTP, TLS e JSON sotto entrambi i client
OAuth2 TsgcHTTP_OAuth2_Client
JWT TsgcHTTP_JWT_Client
2 Componenti client Una sola pagina nella palette dei componenti
9 RFC implementate OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE e altro
5 Piattaforme Windows, macOS, Linux, iOS e Android
100% Codice sorgente incluso Entrambi i client e il runtime Core incluso
12 Mesi di aggiornamenti Ogni versione pubblicata mentre la licenza è attiva

Tre cose che vale la pena sapere subito

Cosa richiede sgcAuth da te, se possiedi già questi componenti, e cosa serve in più per WebAuthn. Tutte e tre le risposte sono brevi.

sgcAuth è autosufficiente

Autonomo, include il runtime sgcWebSockets Core: lo stack client HTTP/TLS con cui entrambi i componenti effettuano le loro richieste di token, e le funzioni JSON con cui interpretano le risposte. Un solo SKU, un solo installer.

Il codice sorgente completo è incluso in ogni licenza, così entrambi i client e il runtime sotto di loro si possono seguire passo passo nel tuo debugger invece di sparire dentro un binario.

Sovrapposizione con le edizioni

Già nella tua edizione di sgcWebSockets?

Sia il client OAuth2 sia il client JWT sono inclusi in sgcWebSockets a partire dall'edizione Standard, quindi se possiedi una qualsiasi edizione di sgcWebSockets hai già entrambi i componenti. All-Access include tutto.

sgcAuth esiste per il caso opposto: vuoi il supporto client OAuth2 e JWT in Delphi o C++ Builder senza acquistare la licenza di un'intera edizione di sgcWebSockets. Controlla cosa copre già la tua edizione prima di acquistare.

Componente aggiuntivo richiesto

WebAuthn richiede sgcCustomIndy

L'accesso passwordless con WebAuthn è servito da TsgcWSAPIServer_WebAuthn, un componente Enterprise/All-Access di sgcWebSockets costruito sulla libreria Indy modificata che sgcCustomIndy distribuisce come componente aggiuntivo. WebAuthn richiede il componente aggiuntivo sgcCustomIndy, che viene aggiunto automaticamente quando ordini sgcAuth.

Possiedi già una licenza sgcCustomIndy? Rimuovi la riga aggiunta automaticamente dal tuo carrello prima del pagamento, nessun costo extra in entrambi i casi.

Due client, l'intero ciclo di vita del token

Ognuno è un componente non visuale che metti su una form o crei da codice, dichiarato con il prefisso dell'unità sgc e registrato sulla pagina della palette SGC Auth. Imposta i dettagli del provider, aggancia gli eventi, poi chiama Start.

OAuth21 componente

Cinque grant type, un solo componente

TsgcHTTP_OAuth2_Client pilota OAuth2Options.GrantType attraverso auth2Code per applicazioni server-side affidabili, auth2CodePKCE per app native, mobile e single-page, auth2ClientCredentials per demoni e account di servizio, auth2ResourceOwnerPassword, e auth2DeviceCode (RFC 8628) per smart TV, chioschi e altri dispositivi con input limitato. Punta AuthorizationServerOptions sugli endpoint di autorizzazione, token, revoca e introspezione del provider e il componente fa il resto: quando Active/Start esegue il flusso Authorization Code, apre il browser di sistema e avvia un piccolo server HTTP locale da LocalServerOptions per intercettare il redirect, scambiando il codice con un token su HTTPS puro attraverso HTTPClientOptions. Refresh, Revoke e Introspect coprono il ciclo di vita del token da lì in poi, e DPoPOptions più GenerateDPoPKeyPair aggiungono la proof-of-possession DPoP (RFC 9449) per i provider che la richiedono. Preset già pronti per Google e Microsoft configurano gli endpoint e gli scope comuni al posto tuo.

TsgcHTTP_OAuth2_Client RFC 6749 · PKCE · Device Code · DPoP
JWT1 componente

Firma, allega o verifica, a tua scelta

TsgcHTTP_JWT_Client espone tutto ciò che serve alla RFC 7519 attraverso JWTOptions: l'header JOSE (alg, typ, kid), le claim registrate del Payload (iss, sub, aud, exp, nbf, iat, jti, più claim personalizzate tramite AddKeyValue), e il materiale della chiave sotto Algorithms per HMAC (HS.Secret), RSA (RS.PrivateKey) ed ECDSA (ES.PrivateKey). Chiama Sign per ottenere direttamente il token in serializzazione compatta, utile per servizi senza un client HTTP o WebSocket integrato, oppure imposta RefreshTokenAfter e lascia che il componente aggiorni iat/exp e rifirmi automaticamente. Lo stesso componente si collega direttamente ad Authentication.Token.JWT su TsgcWebSocketClient, TsgcHTTP1Client e TsgcHTTP2Client, così ogni richiesta in uscita porta un Bearer token aggiornato senza che tu debba toccare l'header.

TsgcHTTP_JWT_Client RFC 7519 · JWS · JWE

Flussi di autenticazione da codice Delphi

Entrambi i componenti sono normali componenti non visuali, quindi si inseriscono in qualsiasi cosa sia già la tua applicazione: un'app desktop VCL, un servizio Windows, un demone Linux. Questi sono gli schemi che i clienti costruiscono, ciascuno mappato sulla proprietà o sul metodo che lo pilota.

Accedi con Google o Microsoft auth2CodePKCE

Preset già pronti per Google e Microsoft configurano gli endpoint di autorizzazione e token e gli scope al posto tuo.

Accesso API da server a server auth2ClientCredentials

Job in background e account di servizio si autenticano a un'API senza un utente nel mezzo.

Smart TV, chioschi e dispositivi IoT auth2DeviceCode

Il dispositivo mostra un codice breve, l'utente completa l'accesso dal telefono o dal portatile.

Sessioni lunghe senza richiedere di nuovo l'accesso Refresh

Scambia un refresh token con un nuovo access token dietro le quinte, senza passare di nuovo dal browser.

Autentica le tue API WebSocket e HTTP Authentication.Token.JWT

Il client JWT firma i Bearer token per TsgcWebSocketClient, TsgcHTTP1Client e TsgcHTTP2Client automaticamente.

Firma di token indipendente Sign

Crea e firma una stringa JWT per qualsiasi codebase, senza bisogno di un componente WebSocket o HTTP.

Un passaggio al browser, una firma e un runtime incluso

OAuth2 e JWT risolvono problemi diversi, uno negozia un token con un server remoto, l'altro ne firma uno localmente, ed è proprio questo il senso di raggrupparli insieme: sgcAuth nasconde la differenza dietro le stesse convenzioni dei componenti, con il runtime sgcWebSockets Core incluso che fa da impianto idraulico sotto.

OAuth2 è un passaggio al browser, poi HTTPS puro

Start apre il browser di sistema (o, per Device Code, ti consegna il codice utente da mostrare) e un listener HTTP locale da LocalServerOptions intercetta il redirect di autorizzazione. Lo scambio per l'access token è una POST HTTPS pura effettuata attraverso HTTPClientOptions, sullo stack client HTTP del runtime Core.

JWT è firma, non rete

TsgcHTTP_JWT_Client non apre mai un socket. JWTOptions configura l'header, il payload e il materiale della chiave, e Sign restituisce il token in serializzazione compatta, HMAC, RSA o ECDSA, pronto da allegare a qualsiasi richiesta che il tuo codice invia.

Il runtime Core è nella confezione

Autonomo, include il runtime sgcWebSockets Core. Contribuisce lo stack client HTTP/TLS attraverso cui entrambi i componenti effettuano le loro POST e il parser JSON che legge le risposte, e il suo codice sorgente completo fa parte della confezione come tutto il resto.

WebAuthn è il terzo pezzo, tramite sgcCustomIndy

L'accesso passwordless è gestito da TsgcWSAPIServer_WebAuthn, un componente server Enterprise/All-Access di sgcWebSockets che richiede la build Indy modificata che sgcCustomIndy distribuisce. Ordinare sgcAuth aggiunge sgcCustomIndy al tuo carrello automaticamente.

Ottieni un token, firma un token

Entrambi i componenti seguono la stessa struttura: configura le opzioni, poi chiama un metodo. Compilano in Delphi 7-13 e in C++ Builder, e le stesse proprietà sono esposte su .NET.

uses
  sgcHTTP_OAuth2_Client, sgcHTTP_JWT_Client;

var
  OAuth2: TsgcHTTP_OAuth2_Client;
  JWT: TsgcHTTP_JWT_Client;
begin
  // OAuth2: Authorization Code Grant with PKCE
  OAuth2 := TsgcHTTP_OAuth2_Client.Create(nil);
  OAuth2.OAuth2Options.GrantType := auth2CodePKCE;
  OAuth2.OAuth2Options.ClientId := 'your-client-id';
  OAuth2.AuthorizationServerOptions.AuthURL := 'https://provider.com/oauth2/authorize';
  OAuth2.AuthorizationServerOptions.TokenURL := 'https://provider.com/oauth2/token';
  OAuth2.AuthorizationServerOptions.Scope.Text := 'openid profile';
  OAuth2.LocalServerOptions.IP := '127.0.0.1';
  OAuth2.LocalServerOptions.Port := 8080;
  OAuth2.OnAfterAccessToken := OAuth2AccessToken;
  OAuth2.Start;   // opens the browser; the redirect lands on the local server

  // JWT: sign a token for your own API
  JWT := TsgcHTTP_JWT_Client.Create(nil);
  JWT.JWTOptions.Header.alg := jwtHS256;
  JWT.JWTOptions.Algorithms.HS.Secret := '79F66F1E-E998-436B-8A0A-3E5DEFA4FD9E';
  JWT.JWTOptions.Payload.iss := 'your-service';
  JWT.JWTOptions.Payload.sub := '1234567890';
  JWT.JWTOptions.Payload.iat := DateTimeToUnix(Now);
  ShowMessage(JWT.Sign);
end;

procedure TForm1.OAuth2AccessToken(Sender: TObject);
begin
  Memo1.Lines.Add('Access token received.');
end;

Lo stesso componente JWT si collega direttamente a un client WebSocket o HTTP: imposta Client.Authentication.Token.Enabled := True e Client.Authentication.Token.JWT := JWT, e ogni richiesta parte con un Bearer token aggiornato.

// include: sgcHTTP_OAuth2_Client.hpp, sgcHTTP_JWT_Client.hpp

// OAuth2: Authorization Code Grant with PKCE
TsgcHTTP_OAuth2_Client *OAuth2 = new TsgcHTTP_OAuth2_Client(this);
OAuth2->OAuth2Options->GrantType = auth2CodePKCE;
OAuth2->OAuth2Options->ClientId = "your-client-id";
OAuth2->AuthorizationServerOptions->AuthURL = "https://provider.com/oauth2/authorize";
OAuth2->AuthorizationServerOptions->TokenURL = "https://provider.com/oauth2/token";
OAuth2->AuthorizationServerOptions->Scope->Text = "openid profile";
OAuth2->LocalServerOptions->IP = "127.0.0.1";
OAuth2->LocalServerOptions->Port = 8080;
OAuth2->OnAfterAccessToken = OAuth2AccessToken;
OAuth2->Start();   // opens the browser; the redirect lands on the local server

// JWT: sign a token for your own API
TsgcHTTP_JWT_Client *JWT = new TsgcHTTP_JWT_Client(this);
JWT->JWTOptions->Header->alg = jwtHS256;
JWT->JWTOptions->Algorithms->HS->Secret = "79F66F1E-E998-436B-8A0A-3E5DEFA4FD9E";
JWT->JWTOptions->Payload->iss = "your-service";
JWT->JWTOptions->Payload->sub = "1234567890";
JWT->JWTOptions->Payload->iat = DateTimeToUnix(Now());
ShowMessage(JWT->Sign());

void __fastcall TForm1::OAuth2AccessToken(TObject *Sender)
{
  Memo1->Lines->Add("Access token received.");
}

Lo stesso componente JWT si collega direttamente a un client WebSocket o HTTP: imposta Client->Authentication->Token->Enabled = true e Client->Authentication->Token->JWT = JWT, e ogni richiesta parte con un Bearer token aggiornato.

HTTPS puro e firma, nessuna libreria nativa

Nessuno dei due componenti dipende da altro oltre allo stack client HTTP del runtime Core e alle primitive crittografiche della piattaforma, quindi entrambi compilano e girano ovunque compili Delphi.

TsgcHTTP_OAuth2_Client Authorization Code, PKCE, Client Credentials, Resource Owner Password, Device Code
Windows Win32 Windows Win64 Linux64 macOS iOS Android
TsgcHTTP_JWT_Client HS256/384/512, RS256/384/512, ES256/384/512
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Supporto IDE Un solo albero dei sorgenti, package di design-time per ogni versione
Da Delphi 7 a 13 C++ Builder
Installer di prova La versione di prova All-Access di sgcWebSockets include i componenti Auth
Un solo download, entrambi i componenti

Scarica l'installer di prova →

Un package autonomo

sgcAuth viene concesso in licenza da solo, a partire da €149 per un singolo sviluppatore. Tutte le licenze includono il codice sorgente completo, 1 anno di aggiornamenti e uno sconto sul rinnovo dal 50% al 70%: il 50% se rinnovi un pacchetto, il 60% con due, il 70% con tre o più. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth e sgcHTTP contano ciascuno come un pacchetto.

sgcAuth

€149

Licenze Single, Team e Site disponibili.

  • Client OAuth2: Authorization Code, PKCE, Client Credentials, Device Code
  • Client JWT per emettere, firmare e verificare i token
  • Passkey WebAuthn, tramite sgcCustomIndy (aggiunto automaticamente)
  • Runtime sgcWebSockets Core incluso
  • Da Delphi 7 a 13 e C++ Builder
  • Codice sorgente completo
  • 1 anno di aggiornamenti

sgcAuth include il runtime sgcWebSockets Core, quindi non c'è nient'altro da comprare per i client OAuth2 e JWT.

Il pagamento elenca due voci: il diritto d'uso del runtime sgcWebSockets Core, addebitato a zero, e il pacchetto sgcAuth stesso. sgcCustomIndy viene aggiunto automaticamente per WebAuthn, rimuovilo se lo possiedi già. Tutti i dettagli sui prezzi.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso

Distribuisci l'autenticazione, non una libreria di token

OAuth2 e JWT da codice nativo Delphi e C++ Builder, con il runtime incluso e il codice sorgente completo nella confezione. Scarica l'installer di prova All-Access e metti subito entrambi i componenti su una form.

Altri prodotti di eSeGeCe

Abbina sgcAuth alle nostre altre librerie di componenti per Delphi, C++ Builder e .NET.

sgcWebSockets

La libreria completa: client e server WebSocket, HTTP/2, componenti IoT, P2P e AI. Le sue edizioni includono anche i client OAuth2 e JWT.

Scopri di più →

sgcCustomIndy

La libreria Indy personalizzata su cui è costruito sgcWebSockets Enterprise, distribuita come componente aggiuntivo. Richiesto per WebAuthn, aggiunto automaticamente agli ordini di sgcAuth.

Scopri di più →

sgcAI

Componenti AI, LLM e MCP. Un solo componente di chat raggiunge OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral.

Scopri di più →

sgcMQ

Componenti client nativi MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka e STOMP, con il runtime Core incluso.

Scopri di più →

sgcSocial

Componenti client WhatsApp Business Cloud API e Telegram TDLib, con il runtime Core incluso.

Scopri di più →

sgcHTML

Componenti HTML/UI lato server e data-aware per Delphi, C++ Builder e .NET, con Bootstrap 5 e htmx, incluso un componente UI di login WebAuthn.

Scopri di più →