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. Altri cinque componenti aggiungono i secondi fattori TOTP, l'accesso LDAP e Active Directory, il single sign-on SAML, OpenID Connect e OAuth2 per la posta. 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

Guarda sgcAuth in due minuti

OAuth2, JWT e passkey WebAuthn in Delphi e C++Builder, sul client e nel tuo server.

7 Componenti 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. I componenti WebAuthn, TOTP, LDAP, SAML, OpenID Connect e Mail OAuth2 sono inclusi in Enterprise. 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 e passkey è 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. I componenti TOTP, LDAP, SAML, OpenID Connect e Mail OAuth2 sono sbloccati dallo stesso componente aggiuntivo.

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

Client per i token, secondi fattori e single sign-on

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. I componenti TOTP, LDAP, SAML, OpenID Connect e Mail OAuth2 sono sbloccati insieme a sgcCustomIndy, come WebAuthn.

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
TOTP1 componente

Codici a due fattori, ciascuno accettato una sola volta

TsgcTOTPAuthenticator aggiunge al tuo accesso i codici a sei cifre di qualsiasi app authenticator, Google Authenticator e Microsoft Authenticator incluse. GenerateSecret crea un secret Base32 casuale e GetProvisioningURI costruisce l'URI otpauth:// che rendi come codice QR durante l'iscrizione. VerifyCode verifica quello che digita l'utente con una Window configurabile per lo sfasamento dell'orologio, e il suo overload con protezione dai replay non accetta mai due volte lo stesso step temporale. GenerateHOTP e VerifyHOTP coprono i token hardware basati sul contatore, GenerateRecoveryCodes riempie una lista di codici di riserva monouso, e Algorithm, Digits e Period selezionano HMAC-SHA1, HMAC-SHA256 o HMAC-SHA512 con codici da 6 a 8 cifre.

TsgcTOTPAuthenticator RFC 6238 · RFC 4226 · otpauth QR
LDAP1 componente

Accesso Active Directory su TLS

TsgcLDAPClient è un client LDAP v3 che verifica nomi utente e password su Active Directory o qualsiasi altra directory LDAP. Security seleziona LDAPS sulla porta 636 o StartTLS sulla porta 389, e uno StartTLS rifiutato chiude la connessione invece di ripiegare sul testo in chiaro. AuthenticationMode trasforma quanto digitato dall'utente in un bind name, come UPN, come nome DOMAIN\user, come DN completo, oppure come bind di servizio seguito da una ricerca con UserSearchFilter, e Authenticate esegue l'intera verifica in un'unica chiamata. GetUserGroups restituisce l'appartenenza diretta o annidata ai gruppi tramite LDAP_MATCHING_RULE_IN_CHAIN, Search pagina automaticamente i risultati numerosi, e ogni metodo pubblico è serializzato, così un'unica istanza può servire un server multi-thread.

TsgcLDAPClient RFC 4511 · LDAPS · StartTLS
SAML1 componente

Single sign-on aziendale per la tua web app

TsgcSAMLServiceProvider trasforma la tua applicazione web Delphi in un service provider SAML 2.0 per Microsoft Entra ID, Okta, AD FS, Google Workspace, Keycloak e altri identity provider. GetMetadata produce i metadata che registri presso l'IdP e LoadIdPMetadata legge i suoi. GetAuthnRequestRedirectURL e GetAuthnRequestPostForm inviano il browser ad accedere tramite il binding Redirect o POST, e ProcessResponse convalida ciò che torna indietro: la firma solo rispetto agli IdPCertificates fidati, esattamente un'assertion per neutralizzare il signature wrapping, poi issuer, audience, destination, InResponseTo, la finestra di validità e una cache anti-replay. Il risultato arriva come un TsgcSAMLResult con il NameID, l'indice di sessione e gli attributi.

TsgcSAMLServiceProvider SAML 2.0 · HTTP-Redirect · HTTP-POST
OpenID Connect1 componente

Accesso con qualsiasi provider OpenID

TsgcHTTP_OIDC_Client estende il client OAuth2 con OpenID Connect. Imposta OIDCOptions.Issuer e Discover popola gli endpoint e il JWKSURI a partire dalla configurazione del provider. Start esegue l'accesso via browser con PKCE e un nonce nuovo, poi convalida firma, issuer, audience, scadenza e nonce dell'ID token, accettando solo RS256, RS384, RS512, ES256 ed ES384 e mai none o gli algoritmi HS. OnOIDCIDToken consegna i claim, GetUserInfo restituisce il profilo, e una cache di chiavi thread safe segue la rotazione delle chiavi senza bisogno di un riavvio. Lato server, sgcOIDC_ValidateIDToken verifica i bearer token ricevuti dalla tua REST API o dal server WebSocket rispetto alla stessa cache.

TsgcHTTP_OIDC_Client OpenID Connect Core 1.0 · Discovery · PKCE
Mail OAuth21 componente

Autenticazione moderna per SMTP, IMAP e POP3

TsgcMailOAuth2 ottiene i token richiesti da Microsoft 365 e Gmail per la posta. Scegli Provider (mopMicrosoft365, mopGmail o mopCustom) e i Protocols che usi, e il componente richiede gli scope corrispondenti. Flow esegue l'accesso via browser con PKCE e un loopback redirect, oppure il flusso device code per servizi e console. Refresh rinnova l'access token e OnTokensChanged viene generato ogni volta, così puoi salvare il nuovo refresh token. GetXOAuth2 e GetOAuthBearer restituiscono le stringhe SASL per AUTH XOAUTH2 e AUTH OAUTHBEARER, pronte per Indy TIdSMTP, TIdIMAP4 e TIdPOP3 o qualsiasi altra libreria di posta.

TsgcMailOAuth2 RFC 7628 · XOAUTH2 · Microsoft 365 · Gmail

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, sgcHTTP_OAuth_Types, sgcHTTP_JWT_Types;

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.Clear;
  OAuth2.AuthorizationServerOptions.Scope.Add('openid');
  OAuth2.AuthorizationServerOptions.Scope.Add('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; const Access_Token,
  Token_Type, Expires_In, Refresh_Token, Scope, RawParams: String;
  var Handled: Boolean);
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.hpp, sgcHTTP_OAuth_Types.hpp, sgcHTTP_JWT_Types.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->Clear();
OAuth2->AuthorizationServerOptions->Scope->Add("openid");
OAuth2->AuthorizationServerOptions->Scope->Add("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,
  const UnicodeString Access_Token, const UnicodeString Token_Type,
  const UnicodeString Expires_In, const UnicodeString Refresh_Token,
  const UnicodeString Scope, const UnicodeString RawParams, bool &Handled)
{
  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, ML-DSA-44/65/87
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, sgcHTTP e sgcREST 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)
  • TOTP, LDAP, SAML, OpenID Connect e Mail OAuth2, tramite sgcCustomIndy
  • 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+Sviluppatori
20+Anni
761+Componenti
30+Integrazioni API
5Piattaforme
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ù →

sgcWebRTC

Motore multimediale WebRTC completo: chiamate audio/video, canali dati e condivisione dello schermo. Un componente aggiuntivo per sgcWebSockets Enterprise.

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ù →

sgcCrypto

Cifrari simmetrici e asimmetrici, hashing e algoritmi post-quantum. Inclusa gratuitamente da sgcWebSockets Standard in su.

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ù →