sgcAuth OAuth2 et JWT, natifs dans Delphi. Les passkeys aussi.

Deux composants 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. Autonome, le runtime sgcWebSockets Core est inclus.

  • OAuth2
  • JWT
  • Passkeys WebAuthn
  • PKCE, Device Code, DPoP
  • Delphi 7 à 13
  • C++ Builder
  • Code source complet
  • 2Composants clients, OAuth2 et JWT, sur une seule page de la palette
  • 9RFC implémentées : OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE et plus encore
  • 5Plateformes cibles : Windows, macOS, Linux 64 bits, iOS et Android
  • 1Installateur autonome, avec le runtime Core inclus
  • 100%Code source inclus avec chaque licence
Regarde-le tourner

Découvre sgcAuth en deux minutes.

JWT, OAuth2 et WebAuthn, côté client et côté serveur, depuis Delphi. Commenté et sous-titré. Rien ne se télécharge avant que tu appuies sur lecture.

Démarrage rapide de sgcAuth

Tokens, autorisation déléguée et passkeys dans un seul package.

  1. Trois façons de commencerJWT quand tu connais déjà l’utilisateur, OAuth2 quand un tiers détient l’identité, WebAuthn quand il n’y a plus de mot de passe du tout.
  2. Signer un JWTChoisis l’algorithme et le secret, renseigne les claims standard, puis attache le composant à un client WebSocket ou HTTP comme token Bearer.
  3. Le valider sur le serveurLa signature, exp et nbf sont vérifiés, et une requête avec un mauvais token n’atteint jamais ton gestionnaire.
  4. OAuth2 dans un seul composantClient id, URL du fournisseur, scopes et un type de grant. Il ouvre le navigateur et lance le serveur de redirection local à ta place.
  5. WebAuthn et passkeysEnregistrement et assertion pilotés par le composant serveur. La clé privée ne quitte jamais l’appareil.
Ce que contient le pack

Un composant par tâche, un seul style d’API.

Dépose un composant sur une fiche, règle les détails du fournisseur ou de la clé, branche les événements, puis appelle Start ou Sign. Le nommage est cohérent sur les deux, un flux d’authentification se lit donc de la même façon quel que soit le grant ou l’algorithme utilisé.

Tous les types de grant, un seul 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.

Voir le client OAuth2 →

Tout le cycle de vie du token

Start 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. Refresh, vérification Revoke et Introspect couvrent ensuite le cycle de vie du token, et DPoPOptions ajoute la preuve de possession (RFC 9449) pour les fournisseurs qui l’exigent.

Méthodes du cycle de vie →

Signer, attacher ou vérifier, à toi de choisir

TsgcHTTP_JWT_Client expose tout ce dont la RFC 7519 a besoin via JWTOptions : l’en-tête JOSE Header, les revendications enregistrées Payload (iss, vérification sub, vérification aud, vérification exp, vérification nbf, vérification iat, vérification jti, plus des revendications personnalisées), et le matériel de clé pour HMAC, RSA et ECDSA. Appelle Sign pour récupérer directement le token en sérialisation compacte, ou règle RefreshTokenAfter et laisse le composant re-signer automatiquement.

Voir le client JWT →

Un token Bearer tout neuf à chaque requête

Le composant JWT se branche directement dans Authentication.Token.JWT de TsgcWebSocketClient, vérification TsgcHTTP1Client et TsgcHTTP2Client, de sorte que chaque requête sortante porte un token Bearer tout neuf sans une ligne de code d’en-tête.

Voir le code →

Passkeys, via sgcCustomIndy

La connexion sans mot de passe est servie par TsgcWSAPIServer_WebAuthn, un composant sgcWebSockets Enterprise/All-Access construit sur la bibliothèque Indy corrigée que sgcCustomIndy fournit comme add-on. Il est toujours inclus quand tu commandes sgcAuth, tout comme les composants TOTP, LDAP, SAML, OpenID Connect et Mail OAuth2.

Voir ce qu’il peut faire →

Connexion, comptes de service et tes propres API

Connexion avec Google ou Microsoft, accès API de serveur à serveur, smart TV et bornes, sessions longues sans redemander de connexion, et tokens Bearer pour tes propres API WebSocket et HTTP. Les deux composants tournent volontiers dans une application VCL ou FMX, un service ou un processus console.

La matrice des fonctionnalités →

HTTPS et signature purs, aucune bibliothèque native

Aucun des deux composants ne dépend d’autre chose que de la pile client HTTP du runtime Core et des primitives cryptographiques de la plateforme, ils se compilent et s’exécutent donc partout où Delphi le fait : Windows, macOS, Linux 64 bits, iOS et Android. De Delphi 7 à RAD Studio 13 et sur C++ Builder.

La matrice des fonctionnalités →

N’importe quel fournisseur, préréglages inclus

sgcAuth parle les standards publiés OAuth2/OIDC et JWT/JWS plutôt que d’encapsuler un SDK de fournisseur, le choix du fournisseur est donc le tien : Google, Microsoft, Auth0, Okta, Keycloak, ou n’importe quel serveur d’autorisation conforme aux RFC. Des préréglages Google et Microsoft prêts à l’emploi configurent à ta place les points de terminaison et les scopes courants.

Configuration du fournisseur →

Code source complet, sans redevance

sgcAuth est un package autonome. Il inclut le runtime sgcWebSockets Core sur lequel il repose, et chaque licence est livrée avec le code source complet, de sorte que les échanges de tokens se déroulent pas à pas dans ton propre débogueur. Le déploiement est sans redevance.

Voir les tarifs →

Les pages de référence de chaque composant :

Le code

Obtiens un token, signe un token.

Configure les options, puis appelle une méthode. Les deux composants 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;
var
  OAuth2: TsgcHTTP_OAuth2_Client;
begin
  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
end;

procedure TForm1.OAuth2AccessToken(Sender: TObject);
begin
  Memo1.Lines.Add('Access token received.');
end;
uses
  sgcHTTP_JWT_Client;
var
  JWT: TsgcHTTP_JWT_Client;
begin
  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);

  // or attach it to a WebSocket / HTTP client directly:
  // Client.Authentication.Token.Enabled := True;
  // Client.Authentication.Token.JWT := JWT;
end;

La même forme en Object Pascal et en C++ Builder. La matrice complète des fonctionnalités →

  1. Dépose un composant sur une ficheTsgcHTTP_OAuth2_Client et TsgcHTTP_JWT_Client se trouvent sur la même page de la palette.
  2. Renseigne le fournisseur ou la cléURL d’autorisation et de token, client id et scopes pour OAuth2. Algorithme, secret ou paire de clés et claims pour JWT.
  3. Branche les événementsOnAfterAccessToken te remet le token, et les appels de refresh, de revoke et d’introspect suivent le même schéma.
  4. Appelle Start ou SignOu confie le composant JWT à un client WebSocket ou HTTP et laisse-le attacher un token Bearer tout neuf à chaque requête.
Regard de plus près

Trois portes d’entrée, un seul package.

Images de la vidéo de démarrage rapide de sgcAuth.

Un JWT voyage du composant client vers le serveur sous forme de token Bearer, où la signature, exp, nbf, iss et aud sont vérifiés

Signé côté client, vérifié côté serveur.

Le client JWT signe avec HMAC, RSA ou ECDSA et voyage dans l’en-tête Authorization: Bearer de la requête. En face, la signature est vérifiée avec le même secret ou la clé publique, les tokens expirés ou pas encore valides sont rejetés, et une requête avec un mauvais token n’atteint jamais ton gestionnaire.

Les types de grant OAuth2 dans sgcAuth : authorization code, code avec PKCE, client credentials, resource owner password et device code, avec refresh, révocation, introspection et DPoP

Choisis le grant qui convient à l’application.

Authorization Code pour les applications web avec un back end, PKCE pour les applications natives et mobiles, Client Credentials pour les échanges machine à machine, Device Code pour les téléviseurs et les consoles. Le refresh, la révocation, l’introspection et DPoP sont aussi gérés pour toi.

Le flux WebAuthn entre le navigateur, l’authentificateur et ton serveur : challenge, signature, vérification

Pas de mot de passe, et aucun secret partagé à laisser fuiter.

Le serveur envoie un challenge aléatoire, l’authentificateur le signe avec la clé privée, et le serveur le vérifie avec la clé publique stockée. L’utilisateur se connecte avec une passkey, une empreinte digitale ou une clé matérielle, et la clé privée ne quitte jamais l’appareil.

Avant d’acheter

Quatre choses à savoir avant tout.

Ce que sgcAuth attend de toi, si tu possèdes déjà ces composants, ce dont WebAuthn a besoin en plus, et quels IDE sont ciblés. Les réponses sont courtes, et elles sont sur cette page plutôt qu’en petits caractères.

job          component                grants / algorithms
OAuth2       TsgcHTTP_OAuth2_Client   Code, PKCE, Client Credentials,
                                       Resource Owner Password, Device Code
JWT          TsgcHTTP_JWT_Client      HS256/384/512, RS256/384/512, ES256/384/512

already own it?
Both the OAuth2 Client and the JWT Client ship inside
  sgcWebSockets from the Standard edition up.
sgcAuth is for licensing OAuth2 + JWT without a full
  sgcWebSockets edition.
  1. sgcAuth est autonomeLe runtime sgcWebSockets Core est inclus : la pile client HTTP/TLS par laquelle les deux composants envoient leurs requêtes de token en POST, et la mécanique JSON qui analyse les réponses. Un seul installateur, le code source complet inclus.
  2. Déjà inclus dans ton édition sgcWebSockets ?Les deux clients sont livrés dans sgcWebSockets à partir de l’édition Standard. sgcAuth existe pour le cas inverse : la prise en charge des clients OAuth2 et JWT sans licencier une édition complète de sgcWebSockets.
  3. WebAuthn nécessite sgcCustomIndyTsgcWSAPIServer_WebAuthn est construit sur la bibliothèque Indy corrigée que sgcCustomIndy fournit comme add-on. Il est toujours inclus quand tu commandes sgcAuth, et le prix de sgcAuth affiché le couvre déjà.
  4. Delphi et C++ BuildersgcAuth cible Delphi 7 à RAD Studio 13 et C++ Builder. L’installateur d’essai gratuit est l’essai sgcWebSockets All-Access, les deux composants peuvent donc être évalués dès aujourd’hui.

Les grants, le refresh, la révocation et la signature sont autant de méthodes et d’événements de premier plan, et avec le code source complet, rien entre les deux n’est une boîte noire. Chaque composant et propriété →

Fait partie de sgcWebSockets

Sous licence autonome, ou déjà dans ton édition.

sgcAuth est un package de la famille sgcWebSockets. Achète-le en version autonome avec le runtime Core inclus, ou obtiens les deux clients avec n’importe quelle édition de sgcWebSockets à partir de Standard.

sgcAuth

Les clients OAuth2 et JWT, en version autonome, avec le runtime sgcWebSockets Core inclus.

€298 / licence Single
  • Client OAuth2 : Authorization Code, PKCE, Client Credentials, Device Code
  • Client JWT pour émettre, signer et vérifier des tokens
  • Passkeys WebAuthn, via sgcCustomIndy (inclus)
  • TOTP, LDAP, SAML, OpenID Connect et Mail OAuth2, via sgcCustomIndy
  • Code source complet et 1 an de mises à jour
Tarifs de sgcAuth →

Team et Site

Le même package, sous licence pour toute une équipe ou tout un site.

Team €498 Site €798
  • Tout ce qui est dans la licence Single
  • Le droit d’utilisation du runtime sgcWebSockets Core, facturé à zéro
  • sgcCustomIndy, requis par WebAuthn, toujours inclus
  • Delphi 7 à 13 et C++ Builder
Comparer les licences →

sgcWebSockets

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

€380 / Standard
  • Les deux clients à partir de l’édition Standard
  • Les composants WebAuthn, TOTP, LDAP, SAML, OpenID Connect et Mail OAuth2 sont livrés dans Enterprise
  • C’est là que vit le runtime Core
Découvrir sgcWebSockets →

Si tu possèdes une édition de sgcWebSockets, tu as déjà les deux clients. sgcAuth s’adresse à OAuth2 et JWT sans licencier une édition complète de sgcWebSockets.

Voir les tarifs et les licences
Témoignages

Ce que disent les développeurs

Plébiscité par des développeurs Delphi, C++ Builder, Lazarus et .NET dans le monde entier.

Votre bibliothèque sgcWebSockets est très utile et facile à configurer. Continuez votre excellent travail !
Simone Moretti Développeur Delphi
sgcWebSockets est incroyable et votre support est le meilleur !
Christian Meyer Fondateur & CTO
Merci beaucoup pour votre aide et votre support, j’adore vos composants.
Mark Steinfeld CTO

Livre de l’authentification, pas une bibliothèque de tokens.

OAuth2 et JWT dans un seul package, avec le runtime sgcWebSockets Core inclus et le code source complet dans la boîte.

L’écosystème

Autres produits d'eSeGeCe

sgcAuth fait partie des bibliothèques de composants eSeGeCe pour Delphi, C++ Builder et .NET. Elles partagent les mêmes conventions, sont livrées avec le code source complet et se déploient sans redevance.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA et plus de 30 intégrations d’APIs pour Delphi, C++ Builder, Lazarus et .NET. C’est là que vit le runtime Core.

sgcHTTP

Serveur HTTP, client HTTP/2, client gRPC et clients Google Cloud Pub/Sub, Calendar et FCM pour Delphi et C++ Builder. Autonome, le runtime sgcWebSockets Core est inclus.

sgcREST

Serveur REST, serveur OpenAPI et composants clients OpenAPI pour Delphi et C++ Builder. Autonome, le runtime sgcWebSockets Core est inclus.

sgcMQ

Composants clients MQTT, AMQP 0.9.1 et 1.0, Apache Kafka et STOMP pour Delphi et C++ Builder. Autonome, avec le runtime sgcWebSockets Core inclus.

sgcAI

Composants IA, LLM et MCP pour Delphi et C++ Builder. Sept fournisseurs de LLM derrière un seul composant, plus MCP, embeddings et synthèse vocale. Autonome, le runtime sgcWebSockets Core est inclus.

sgcSocial

Composants clients Telegram et WhatsApp Business pour Delphi et C++ Builder. Autonome, avec le runtime sgcWebSockets Core inclus.

sgcHTML

Composants HTML et d’interface côté serveur sur Bootstrap 5 et htmx, dont un composant d’interface de connexion WebAuthn.

sgcQUIC

Transport QUIC brut et client et serveur HTTP/3, avec WebTransport. Une extension de sgcWebSockets Enterprise.

sgcOpenAPI

Parser OpenAPI 3.x, générateur de SDK Pascal natif, composant serveur OpenAPI, et plus de 1 195 SDK cloud préconçus.

sgcSign

XAdES, PAdES, CAdES et ASiC pour les documents, Authenticode, ClickOnce, NuGet et VSIX pour le code.

sgcPDF

Crée, modifie, affiche, signe, caviarde et valide des fichiers PDF en Object Pascal pur, sans DLL à déployer. Licence indépendante.

sgcBiometrics

Windows Hello, capteurs d’empreintes digitales et Windows Biometric Framework pour Delphi et C++ Builder.

Packs, extensions et plus encore

Les derniers articles du blog

Voir tous les articles →

Tu vois la vue sgcAuth d’eSeGeCe.

Montre-moi un autre angle →
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