sgcAuth : composants OAuth2, JWT et WebAuthn pour Delphi et C++ Builder
Produit autonome OAuth2, JWT et WebAuthn

sgcAuth : composants OAuth2, JWT et WebAuthn pour Delphi et C++ Builder

Deux composants clients portent le volet token de l'authentification moderne dans ton application. TsgcHTTP_OAuth2_Client pilote les flux Authorization Code, PKCE, Client Credentials, Resource Owner Password et Device Code auprès de tout fournisseur OAuth2/OIDC. TsgcHTTP_JWT_Client construit, signe et vérifie des JSON Web Tokens, seul ou comme source de token Bearer pour tes clients WebSocket et HTTP. sgcAuth est autonome, il embarque le runtime sgcWebSockets Core sur lequel reposent les deux clients.

Code source complet
Delphi 7 à 13 et C++ Builder
Runtime inclus sgcWebSockets Core Le runtime HTTP, TLS et JSON sous les deux clients
OAuth2 TsgcHTTP_OAuth2_Client
JWT TsgcHTTP_JWT_Client
2 Composants clients Une seule page sur la palette de composants
9 RFC implémentées OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE et plus
5 Plateformes Windows, macOS, Linux, iOS et Android
100% Code source inclus Les deux clients et le runtime Core inclus
12 Mois de mises à jour Chaque version publiée tant que ta licence est active

Trois choses à savoir d'abord

Ce que sgcAuth attend de toi, si tu possèdes déjà ces composants, et ce dont WebAuthn a besoin en plus. Les trois réponses sont courtes.

sgcAuth est autonome

Autonome, le runtime sgcWebSockets Core est inclus : la pile client HTTP/TLS par laquelle les deux composants envoient leurs requêtes de token, et les utilitaires JSON qui analysent les réponses. Une seule référence, un seul installateur.

Le code source complet accompagne chaque licence, les deux clients et le runtime en dessous se tracent donc dans ton propre débogueur au lieu de disparaître dans un binaire.

Chevauchement d'édition

Déjà inclus dans ton édition sgcWebSockets ?

Le client OAuth2 et le client JWT sont tous deux livrés dans sgcWebSockets à partir de l'édition Standard, donc si tu possèdes déjà une édition sgcWebSockets, tu as déjà les deux composants. All-Access inclut tout.

sgcAuth existe pour le cas inverse : tu veux OAuth2 et JWT en Delphi ou C++ Builder sans licencier une édition complète de sgcWebSockets. Vérifie ce que ton édition couvre déjà avant d'acheter.

Complément requis

WebAuthn nécessite sgcCustomIndy

La connexion sans mot de passe par WebAuthn est servie par TsgcWSAPIServer_WebAuthn, un composant sgcWebSockets Enterprise/All-Access bâti sur la bibliothèque Indy modifiée que sgcCustomIndy fournit comme complément. WebAuthn nécessite le complément sgcCustomIndy, ajouté automatiquement quand tu commandes sgcAuth.

Tu possèdes déjà une licence sgcCustomIndy ? Retire la ligne ajoutée automatiquement de ton panier avant le paiement, sans surcoût dans les deux cas.

Deux clients, tout le cycle de vie du token

Chacun est un composant non visuel que tu déposes sur une fiche ou que tu crées en code, déclaré dans l'unité sgc et enregistré sur la page de palette SGC Auth. Règle les détails du fournisseur, branche les événements, puis appelle Start.

OAuth21 composant

Cinq flux d'autorisation, un composant

TsgcHTTP_OAuth2_Client pilote OAuth2Options.GrantType à travers auth2Code pour les applications de confiance côté serveur, auth2CodePKCE pour les applications natives, mobiles et à page unique, auth2ClientCredentials pour les démons et comptes de service, auth2ResourceOwnerPassword, et auth2DeviceCode (RFC 8628) pour les smart TV, les bornes et autres appareils à saisie limitée. Pointe AuthorizationServerOptions vers les points de terminaison d'autorisation, de token, de révocation et d'introspection du fournisseur et le composant fait le reste : quand Active/Start exécute le flux Authorization Code, il ouvre le navigateur système et lance un petit serveur HTTP local depuis LocalServerOptions pour capter la redirection, échangeant le code contre un token en HTTPS pur via HTTPClientOptions. Refresh, Revoke et Introspect couvrent ensuite le cycle de vie du token, et DPoPOptions plus GenerateDPoPKeyPair ajoutent la preuve de possession DPoP (RFC 9449) pour les fournisseurs qui l'exigent. Des préréglages Google et Microsoft prêts à l'emploi configurent les points de terminaison et les scopes courants à ta place.

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

Signe, attache ou vérifie, à ton choix

TsgcHTTP_JWT_Client expose tout ce dont la RFC 7519 a besoin via JWTOptions : l'en-tête JOSE Header (alg, typ, kid), les revendications enregistrées Payload (iss, sub, aud, exp, nbf, iat, jti, plus des revendications personnalisées via AddKeyValue), et le matériel de clé sous Algorithms pour HMAC (HS.Secret), RSA (RS.PrivateKey) et ECDSA (ES.PrivateKey). Appelle Sign pour récupérer directement le token en sérialisation compacte, utile pour les services sans client HTTP ou WebSocket intégré, ou règle RefreshTokenAfter et laisse le composant rafraîchir iat/exp et resigner automatiquement. Le même composant se branche directement sur Authentication.Token.JWT de TsgcWebSocketClient, TsgcHTTP1Client et TsgcHTTP2Client, chaque requête sortante porte donc un token Bearer à jour sans que tu touches l'en-tête toi-même.

TsgcHTTP_JWT_Client RFC 7519 · JWS · JWE

Des flux d'authentification depuis du code Delphi

Les deux composants sont des composants non visuels ordinaires, ils s'intègrent donc à ce qu'est déjà ton application : une application de bureau VCL, un service Windows, un démon Linux. Voici les schémas que construisent les clients, chacun relié à la propriété ou à la méthode qui le pilote.

Connexion avec Google ou Microsoft auth2CodePKCE

Des préréglages Google et Microsoft prêts à l'emploi configurent les points de terminaison d'autorisation et de token et les scopes à ta place.

Accès API de serveur à serveur auth2ClientCredentials

Les tâches de fond et les comptes de service s'authentifient auprès d'une API sans utilisateur dans la boucle.

Smart TV, bornes et objets connectés auth2DeviceCode

L'appareil affiche un code court, l'utilisateur termine la connexion sur son téléphone ou son ordinateur portable.

Sessions longues sans redemander de connexion Refresh

Échange un refresh token contre un nouveau access token en coulisses, sans passer à nouveau par le navigateur.

Authentifie tes propres API WebSocket et HTTP Authentication.Token.JWT

Le client JWT signe automatiquement les tokens Bearer pour TsgcWebSocketClient, TsgcHTTP1Client et TsgcHTTP2Client.

Signature de token autonome Sign

Construit et signe une chaîne JWT pour n'importe quelle base de code, sans composant WebSocket ou HTTP requis.

Un passage par le navigateur, une signature, et un runtime inclus

OAuth2 et JWT résolvent des problèmes différents, l'un négocie un token avec un serveur distant, l'autre en signe un localement, et c'est justement l'intérêt de les empaqueter ensemble : sgcAuth masque la différence derrière les mêmes conventions de composants, le runtime sgcWebSockets Core inclus faisant la plomberie en dessous.

OAuth2, c'est un passage par le navigateur, puis du HTTPS pur

Start ouvre le navigateur système (ou, pour Device Code, te remet le code utilisateur à afficher) et un écouteur HTTP local depuis LocalServerOptions capte la redirection d'autorisation. L'échange contre le token est une requête HTTPS POST en clair, émise via HTTPClientOptions, sur la pile client HTTP du runtime Core.

JWT, c'est de la signature, pas du réseau

TsgcHTTP_JWT_Client n'ouvre jamais de socket. JWTOptions configure l'en-tête, la charge utile et le matériel de clé, et Sign renvoie le token en sérialisation compacte, HMAC, RSA ou ECDSA, prêt à attacher à n'importe quelle requête que ton propre code envoie.

Le runtime Core est dans la boîte

Autonome, le runtime sgcWebSockets Core est inclus. Il fournit la pile client HTTP/TLS par laquelle les deux composants envoient leurs requêtes POST et l'analyseur JSON qui lit les réponses, et son code source complet fait partie du package comme tout le reste.

WebAuthn est la troisième pièce, via sgcCustomIndy

La connexion sans mot de passe est gérée par TsgcWSAPIServer_WebAuthn, un composant serveur sgcWebSockets Enterprise/All-Access qui a besoin de la version Indy modifiée que fournit sgcCustomIndy. Commander sgcAuth ajoute sgcCustomIndy à ton panier automatiquement.

Obtenir un token, signer un token

Les deux composants suivent la même forme : configure les options, puis appelle une méthode. Ils se compilent de Delphi 7 à 13 et sur C++ Builder, et les mêmes propriétés sont exposées en .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;

Le même composant JWT s'attache directement à un client WebSocket ou HTTP : règle Client.Authentication.Token.Enabled := True et Client.Authentication.Token.JWT := JWT, et chaque requête part avec un token Bearer à jour.

// 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.");
}

Le même composant JWT s'attache directement à un client WebSocket ou HTTP : règle Client->Authentication->Token->Enabled = true et Client->Authentication->Token->JWT = JWT, et chaque requête part avec un token Bearer à jour.

Du HTTPS pur et de la signature, aucune bibliothèque native

Aucun des deux composants ne dépend de plus que la pile client HTTP du runtime Core et les primitives crypto de la plateforme, ils se compilent et tournent donc partout où Delphi le fait.

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
Prise en charge des IDE Une seule arborescence source, packages de conception par version
Delphi 7 à 13 C++ Builder
Installateur d'essai L'essai sgcWebSockets All-Access inclut les composants Auth
Un seul téléchargement, les deux composants

Télécharger l'installateur d'essai →

Un package autonome

sgcAuth se licencie tout seul, à partir de €149 pour un développeur. Toutes les licences incluent le code source complet, 1 an de mises à jour et une remise de renouvellement de 50 % à 70 % : 50 % si tu renouvelles un pack, 60 % pour deux, 70 % pour trois ou plus. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth et sgcHTTP comptent chacun pour un pack.

sgcAuth

€149

Licences Single, Team et Site disponibles.

  • Client OAuth2 : Authorization Code, PKCE, Client Credentials, Device Code
  • Client JWT pour émettre, signer et vérifier des tokens
  • Passkeys WebAuthn, via sgcCustomIndy (ajouté automatiquement)
  • Runtime sgcWebSockets Core inclus
  • Delphi 7 à 13 et C++ Builder
  • Code source complet
  • 1 an de mises à jour

sgcAuth inclut le runtime sgcWebSockets Core, il n'y a donc rien d'autre à acheter pour les clients OAuth2 et JWT.

Le paiement liste deux articles : le droit au runtime sgcWebSockets Core, facturé à zéro, et le pack sgcAuth lui-même. sgcCustomIndy est ajouté automatiquement pour WebAuthn, retire-le si tu possèdes déjà une licence. Détail complet des tarifs.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Livre de l'authentification, pas une bibliothèque de tokens

OAuth2 et JWT depuis du code Delphi et C++ Builder natif, avec le runtime inclus et le code source complet dans la boîte. Télécharge l'installateur d'essai All-Access et dépose les deux composants sur une fiche dès aujourd'hui.

Autres produits d'eSeGeCe

Associe sgcAuth à nos autres bibliothèques de composants pour Delphi, C++ Builder et .NET.

sgcWebSockets

La bibliothèque complète : clients et serveurs WebSocket, HTTP/2, IoT, P2P et composants d'IA. Ses éditions incluent aussi les clients OAuth2 et JWT.

En savoir plus →

sgcCustomIndy

La bibliothèque Indy modifiée sur laquelle repose sgcWebSockets Enterprise, empaquetée comme complément. Requis pour WebAuthn, ajouté automatiquement aux commandes sgcAuth.

En savoir plus →

sgcAI

Composants IA, LLM et MCP. Un seul composant de chat atteint OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok et Mistral.

En savoir plus →

sgcMQ

Composants clients natifs MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka et STOMP, avec le runtime Core inclus.

En savoir plus →

sgcSocial

Composants clients WhatsApp Business Cloud API et Telegram TDLib, avec le runtime Core inclus.

En savoir plus →

sgcHTML

Composants HTML/UI côté serveur et orientés données pour Delphi, C++ Builder et .NET, avec Bootstrap 5 et htmx, dont un composant d'interface de connexion WebAuthn.

En savoir plus →