Matrice des fonctionnalités sgcAuth : OAuth2, JWT et WebAuthn | eSeGeCe

sgcAuth matrice des fonctionnalités

Tout ce que fait sgcAuth, réparti sur les deux composants clients, les flux et les revendications qu'ils implémentent, et la capacité WebAuthn que le pack débloque avec sgcCustomIndy. Chaque capacité fonctionne de la même façon en Delphi et en C++ Builder, et chaque licence est livrée avec le code source complet.

OAuth2

Cinq flux d'autorisation, un composant

JWT

Signer, attacher ou vérifier

WebAuthn

Passkeys, via sgcCustomIndy

Standards et plateformes

Delphi 7 à 13, C++ Builder

sgcAuth est autonome. Il est livré avec le runtime sgcWebSockets Core inclus, ce n'est donc pas un complément pour les clients OAuth2 et JWT.

Aussi dans sgcWebSockets. Le client OAuth2 et le client JWT sont aussi livrés dans les éditions sgcWebSockets à partir de Standard. All-Access inclut tout. sgcAuth est le package autonome pour les équipes qui n'ont besoin que des clients d'authentification.

Deux composants de palette

Deux facettes du même problème, enregistrées sur la page de palette SGC Auth.

ComposantClasseRôleDescription
Client OAuth2TsgcHTTP_OAuth2_ClientObtenir un tokenFlux Authorization Code, PKCE, Client Credentials, Resource Owner Password et Device Code auprès de tout fournisseur OAuth2/OIDC, avec un serveur de redirection local intégré.
Client JWTTsgcHTTP_JWT_ClientSigner un tokenConstruit, signe et vérifie des JSON Web Tokens, seul ou comme source du token Bearer pour TsgcWebSocketClient, TsgcHTTP1Client et TsgcHTTP2Client.

Cinq flux d'autorisation, un composant

TsgcHTTP_OAuth2_Client couvre OAuth 2.0 (RFC 6749) de bout en bout : il démarre le flux, capte la redirection, échange le code contre un token, puis gère le token ensuite.

CapacitéAPINotes
Authorization CodeOAuth2Options.GrantType := auth2CodeLe flux standard pour les applications web côté serveur de confiance, capables de conserver un secret client.
Authorization Code + PKCEauth2CodePKCE (RFC 7636)Le même flux avec une Proof Key for Code Exchange, pour les applications natives, mobiles et à page unique qui ne peuvent pas garder de secret.
Client Credentialsauth2ClientCredentialsAppels serveur à serveur sans utilisateur dans la boucle : démons et comptes de service.
Resource Owner Passwordauth2ResourceOwnerPasswordL'application collecte directement le mot de passe de l'utilisateur et l'échange contre un token.
Device Codeauth2DeviceCode (RFC 8628)Pour les appareils à saisie limitée, smart TV, consoles multimédias, IoT : affiche un code que la personne saisit sur un second appareil.
Identité du clientOAuth2Options.ClientId, ClientSecret, Username, PasswordÀ définir selon la spécification API de ton fournisseur ; Username/Password couvre les fournisseurs qui exigent une authentification Basic sur le point de terminaison de token.
Points de terminaison du fournisseurAuthorizationServerOptions.AuthURL, TokenURL, Scope, RevocationURL, IntrospectionURLLes URL et la liste de scopes publiées dans la documentation OAuth2/OIDC de ton fournisseur.
Préréglages sociauxTsgcHTTP_OAuth2_Client_Google, TsgcHTTP_OAuth2_Client_MicrosoftDescendants prêts à l'emploi qui préconfigurent les points de terminaison et les scopes de Google et Microsoft.
Écouteur de redirection localLocalServerOptions.IP, Port, RedirectURLLe petit serveur HTTP que le composant démarre pour recevoir la redirection du code d'autorisation ; par défaut sur le port 8080, ou 0 pour choisir un port aléatoire dans les applications de bureau.
Exécuter le fluxStart, StopStart ouvre le navigateur système (ou émet le code de l'appareil) et démarre le flux configuré ; Stop l'interrompt et ferme l'écouteur local.
RafraîchissementRefreshÉchange un refresh token contre un nouveau access token sans nouvel aller-retour navigateur.
Révocation et introspectionRevoke (RFC 7009), Introspect (RFC 7662)Invalide un token, ou interroge son état et ses métadonnées chez le fournisseur.
DPoPDPoPOptions, GenerateDPoPKeyPair, OnDPoPSignClé de preuve de possession (Demonstrating Proof-of-Possession, RFC 9449) et signature, pour les fournisseurs qui lient les tokens à une paire de clés.
Transport HTTPHTTPClientOptionsConfiguration TLS et journalisation pour le client HTTP interne qui envoie les requêtes POST aux points de terminaison de token, de révocation et d'introspection.
Événements de cycle de vieOnBeforeAuthorizeCode, OnAfterAuthorizeCode, OnBeforeAccessToken, OnAfterAccessToken, OnBeforeRefreshToken, OnAfterRefreshTokenPaires avant/après pour chaque étape du flux.
Événements d'erreurOnErrorAccessToken, OnErrorAuthorizeCode, OnErrorRefreshToken, OnErrorRevokeToken, OnErrorIntrospectTokenUn par point d'échec du flux, chacun transportant l'erreur, la description et l'URI du fournisseur.
Événements Device CodeOnDeviceCode, OnDeviceCodeExpiredDélivre le code utilisateur et l'URI de vérification à afficher, et se déclenche si la personne ne termine pas l'autorisation à temps.

Signer, attacher ou vérifier

TsgcHTTP_JWT_Client implémente la RFC 7519 (JSON Web Token), la RFC 7515 (JWS) et la RFC 7516 (JWE) à travers une seule propriété JWTOptions.

CapacitéAPINotes
En-têteJWTOptions.Header.alg, typ, kidL'en-tête JOSE. alg sélectionne jwtHS256/384/512, jwtRS256/384/512 ou jwtES256/384/512 ; les champs supplémentaires passent par Header.AddKeyValue.
Charge utile / revendicationsJWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jtiLes revendications enregistrées par la RFC 7519 ; les revendications personnalisées s'ajoutent avec Payload.AddKeyValue.
Clé de signatureJWTOptions.Algorithms.HS.Secret, RS.PrivateKey, ES.PrivateKeySecret partagé pour HMAC, clé privée au format PEM pour RSA ou ECDSA, sélectionnée par Header.alg.
Rafraîchissement automatiqueJWTOptions.RefreshTokenAfterAu-dessus de zéro, Sign rafraîchit iat et recalcule exp automatiquement ; 0 régénère le token à chaque requête.
Signer seulSignConstruit, signe et renvoie le token encodé (header.payload.signature) sous forme d'une seule chaîne, sans client HTTP ni WebSocket.
Attacher à un clientStart, Client.Authentication.Token.JWTStart signe le JWT configuré et le délivre comme token Bearer au composant hôte ; définis-le une fois sur Authentication.Token.JWT et chaque requête part signée.
Fonctionne avecTsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2ClientChacun des trois accepte un TsgcHTTP_JWT_Client comme source de token Bearer via Authentication.Token.
Configuration OpenSSLJWTOptions.OpenSSL_OptionsVersion d'API et chemin de bibliothèque utilisés par les algorithmes RS et ES (APIVersion, LibPath, LibPathCustom, UnixSymLinks).

Connexion sans mot de passe, avec une pièce de plus

WebAuthn fait partie de l'histoire sgcAuth, mais ce n'est pas un troisième composant enregistré dans ce pack. Il est servi par le serveur WebAuthn de sgcWebSockets, et il a besoin de sgcCustomIndy en dessous.

DomaineDétail
Ce que c'estW3C Web Authentication Level 2 (WebAuthn) : connexion sans mot de passe par passkeys et clés de sécurité FIDO2, portée par TsgcWSAPIServer_WebAuthn.
Où ça vitTsgcWSAPIServer_WebAuthn est un composant côté serveur, inclus dans sgcWebSockets Enterprise et All-Access, pas un client enregistré par ce pack.
Ce dont ça a besoinLa version Indy modifiée que sgcCustomIndy fournit comme complément pour sgcWebSockets Core.
Comment ça s'ajouteLa page de commande ajoute sgcCustomIndy à ton panier automatiquement quand tu commandes sgcAuth. Tu possèdes déjà une licence ? Retire la ligne au moment du paiement, sans surcoût dans les deux cas.
Côté clientUne application JavaScript côté navigateur pilote la cérémonie WebAuthn ; sgcHTML fournit un composant d'interface de connexion WebAuthn prêt à l'emploi, qui s'associe au serveur.

RFC, compilateurs et cibles

Des spécifications standardisées, et le même source sur chaque compilateur pris en charge.

DomaineDétail
Standards OAuth2OAuth 2.0 (RFC 6749), PKCE (RFC 7636), Device Authorization Grant (RFC 8628), Token Revocation (RFC 7009), Token Introspection (RFC 7662), DPoP (RFC 9449).
Standards JWTJSON Web Token (RFC 7519), JSON Web Signature (RFC 7515), JSON Web Encryption (RFC 7516).
Standard WebAuthnWeb Authentication Level 2 (W3C), via le serveur WebAuthn de sgcWebSockets.
PlateformesLes deux clients ne font que du HTTPS pur et de la signature locale, chaque plateforme Delphi est donc couverte : Windows Win32/Win64, Linux 64 bits, macOS, iOS et Android.
CompilateursDelphi et C++ Builder 7 à 13.
ÉditionsLe client OAuth2 et le client JWT sont aussi livrés dans sgcWebSockets à partir de Standard, et All-Access inclut tout.
LicenceAutonome. Le runtime sgcWebSockets Core est inclus et le code source complet est fourni.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Construis avec sgcAuth

Télécharge l'essai gratuit et obtiens ton premier access token ou JWT signé depuis Delphi ou C++ Builder.