sgcAuth: componentes de OAuth2, JWT e WebAuthn para Delphi e C++ Builder
Produto autônomo OAuth2, JWT & WebAuthn

sgcAuth: componentes de OAuth2, JWT e WebAuthn para Delphi e C++ Builder

Dois componentes cliente trazem o lado do token da autenticação moderna para a sua aplicação. O TsgcHTTP_OAuth2_Client executa os fluxos Authorization Code, PKCE, Client Credentials, Resource Owner Password e Device Code contra qualquer provedor OAuth2/OIDC. O TsgcHTTP_JWT_Client constrói, assina e verifica JSON Web Tokens, seja sozinho ou como a fonte de Bearer token dos seus clientes WebSocket e HTTP. O sgcAuth é autônomo, ele já traz embutido o runtime sgcWebSockets Core sobre o qual os dois clientes são construídos.

Código-fonte completo
Delphi 7 a 13 & C++ Builder
Runtime embutido sgcWebSockets Core O runtime de HTTP, TLS e JSON por baixo dos dois clientes
OAuth2 TsgcHTTP_OAuth2_Client
JWT TsgcHTTP_JWT_Client
2 Componentes cliente Uma página na paleta de componentes
9 RFCs implementadas OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE e mais
5 Plataformas Windows, macOS, Linux, iOS e Android
100% Código-fonte incluído Os dois clientes e o runtime Core embutido
12 Meses de atualizações Toda versão lançada enquanto a sua licença estiver ativa

Três coisas que vale saber antes

O que o sgcAuth precisa de você, se você já possui estes componentes, e o que o WebAuthn precisa a mais. As três respostas são curtas.

O sgcAuth é autossuficiente

Autônomo, o runtime sgcWebSockets Core está incluído: a pilha de cliente HTTP/TLS pela qual os dois componentes enviam as suas requisições de token, e a maquinaria JSON que interpreta as respostas. Um único SKU, um único instalador.

Toda licença inclui o código-fonte completo, então tanto os dois clientes quanto o runtime por baixo deles são depurados passo a passo no seu próprio debugger, em vez de desaparecer dentro de um binário.

Sobreposição de edição

Já está na sua edição do sgcWebSockets?

Tanto o cliente OAuth2 quanto o cliente JWT vêm dentro do sgcWebSockets a partir da edição Standard, então se você já possui qualquer edição do sgcWebSockets, já tem os dois componentes. O All-Access inclui tudo.

O sgcAuth existe para o caso oposto: você quer suporte a OAuth2 e JWT em Delphi ou C++ Builder sem licenciar uma edição completa do sgcWebSockets. Verifique o que a sua edição já cobre antes de comprar.

Complemento necessário

O WebAuthn precisa do sgcCustomIndy

O login sem senha com WebAuthn é servido pelo TsgcWSAPIServer_WebAuthn, um componente do sgcWebSockets Enterprise/All-Access construído sobre a biblioteca Indy corrigida que o sgcCustomIndy entrega como complemento. O WebAuthn exige o complemento sgcCustomIndy, que é adicionado automaticamente quando você pede o sgcAuth.

Já possui uma licença do sgcCustomIndy? Remova a linha adicionada automaticamente do seu carrinho antes do checkout, sem custo extra em nenhum dos dois casos.

Dois clientes, todo o ciclo de vida do token

Cada um é um componente não visual que você solta em um formulário ou cria em código, declarado sob o prefixo de unit sgc e registrado na página de paleta SGC Auth. Defina os detalhes do provedor, conecte os eventos e chame Start.

OAuth21 componente

Cinco tipos de concessão, um componente

O TsgcHTTP_OAuth2_Client conduz OAuth2Options.GrantType por auth2Code para aplicações server-side confiáveis, auth2CodePKCE para aplicativos nativos, móveis e single-page, auth2ClientCredentials para daemons e contas de serviço, auth2ResourceOwnerPassword, e auth2DeviceCode (RFC 8628) para smart TVs, quiosques e outros dispositivos com entrada limitada. Aponte AuthorizationServerOptions para os endpoints de autorização, token, revogação e introspecção do provedor, e o componente cuida do resto: quando Active/Start executa o fluxo Authorization Code, ele abre o navegador do sistema e sobe um pequeno servidor HTTP local a partir de LocalServerOptions para capturar o redirecionamento, trocando o código por um token via HTTPS puro através de HTTPClientOptions. Refresh, Revoke e Introspect cobrem o ciclo de vida do token depois disso, e DPoPOptions mais GenerateDPoPKeyPair adicionam prova de posse DPoP (RFC 9449) para provedores que exigem isso. Predefinições prontas do Google e da Microsoft configuram os endpoints e escopos comuns para você.

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

Assine, anexe ou verifique, sua escolha

O TsgcHTTP_JWT_Client publica tudo o que a RFC 7519 exige através de JWTOptions: o Header JOSE (alg, typ, kid), as claims registradas do Payload (iss, sub, aud, exp, nbf, iat, jti, mais claims personalizadas via AddKeyValue), e o material de chave sob Algorithms para HMAC (HS.Secret), RSA (RS.PrivateKey) e ECDSA (ES.PrivateKey). Chame Sign para obter o token em serialização compacta diretamente, útil para serviços sem cliente HTTP ou WebSocket embutido, ou defina RefreshTokenAfter e deixe o componente atualizar iat/exp e reassinar automaticamente. O mesmo componente se conecta diretamente a Authentication.Token.JWT em TsgcWebSocketClient, TsgcHTTP1Client e TsgcHTTP2Client, então toda requisição de saída carrega um Bearer token fresco sem que você toque no cabeçalho.

TsgcHTTP_JWT_Client RFC 7519 · JWS · JWE

Fluxos de autenticação a partir de código Delphi

Os dois componentes são componentes não visuais comuns, então eles se encaixam em qualquer coisa que a sua aplicação já seja: um aplicativo desktop VCL, um serviço do Windows, um daemon Linux. Estes são os padrões que os clientes constroem, cada um associado à propriedade ou método que o implementa.

Login com Google ou Microsoft auth2CodePKCE

Predefinições prontas do Google e da Microsoft configuram os endpoints de autorização e token e os escopos para você.

Acesso a API servidor a servidor auth2ClientCredentials

Jobs em segundo plano e contas de serviço se autenticam em uma API sem um usuário no meio.

Smart TVs, quiosques & dispositivos IoT auth2DeviceCode

O dispositivo mostra um código curto, o usuário conclui o login no celular ou notebook dele.

Sessões longas sem pedir login de novo Refresh

Troque um refresh token por um novo access token nos bastidores, sem precisar passar pelo navegador de novo.

Autentique as suas próprias APIs WebSocket & HTTP Authentication.Token.JWT

O cliente JWT assina Bearer tokens para TsgcWebSocketClient, TsgcHTTP1Client e TsgcHTTP2Client automaticamente.

Assinatura de token independente Sign

Construa e assine uma string JWT para qualquer código-base, sem precisar de componente WebSocket ou HTTP.

Uma passagem pelo navegador, uma assinatura, e um runtime embutido

OAuth2 e JWT resolvem problemas diferentes, um negocia um token com um servidor remoto, o outro assina um localmente, e é exatamente esse o propósito de empacotá-los juntos: o sgcAuth esconde a diferença atrás das mesmas convenções de componente, com o runtime sgcWebSockets Core embutido cuidando do encanamento por baixo.

OAuth2 é uma passagem pelo navegador, depois HTTPS puro

Start abre o navegador do sistema (ou, no Device Code, entrega o código de usuário para exibir) e um listener HTTP local a partir de LocalServerOptions captura o redirecionamento de autorização. A troca pelo access token é um POST HTTPS puro emitido através de HTTPClientOptions, na pilha de cliente HTTP do runtime Core.

JWT é assinatura, não rede

O TsgcHTTP_JWT_Client nunca abre um socket. JWTOptions configura o header, o payload e o material de chave, e Sign retorna o token em serialização compacta, HMAC, RSA ou ECDSA, pronto para anexar a qualquer requisição que o seu próprio código envie.

O runtime Core está na caixa

Autônomo, o runtime sgcWebSockets Core está incluído. Ele contribui com a pilha de cliente HTTP/TLS pela qual os dois componentes enviam suas requisições e o parser JSON que interpreta as respostas, e o seu código-fonte completo faz parte do pacote como tudo o mais.

WebAuthn é a terceira peça, via sgcCustomIndy

O login sem senha é tratado pelo TsgcWSAPIServer_WebAuthn, um componente de servidor do sgcWebSockets Enterprise/All-Access que precisa do build Indy corrigido que o sgcCustomIndy entrega. Pedir o sgcAuth adiciona o sgcCustomIndy ao seu carrinho automaticamente.

Obtenha um token, assine um token

Os dois componentes seguem a mesma forma: configure as opções, então chame um método. Eles compilam do Delphi 7 ao 13 e no C++ Builder, e as mesmas propriedades são expostas no .NET.

uses
  sgcHTTP_OAuth2_Client, sgcHTTP_JWT_Client;

var
  OAuth2: TsgcHTTP_OAuth2_Client;
  JWT: TsgcHTTP_JWT_Client;
begin
  // OAuth2: Authorization Code Grant com 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;   // abre o navegador; o redirecionamento cai no servidor local

  // JWT: assine um token para a sua própria 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 recebido.');
end;

O mesmo componente JWT se conecta a um cliente WebSocket ou HTTP diretamente: defina Client.Authentication.Token.Enabled := True e Client.Authentication.Token.JWT := JWT, e toda requisição sai com um Bearer token fresco.

// include: sgcHTTP_OAuth2_Client.hpp, sgcHTTP_JWT_Client.hpp

// OAuth2: Authorization Code Grant com 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();   // abre o navegador; o redirecionamento cai no servidor local

// JWT: assine um token para a sua própria 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 recebido.");
}

O mesmo componente JWT se conecta a um cliente WebSocket ou HTTP diretamente: defina Client->Authentication->Token->Enabled = true e Client->Authentication->Token->JWT = JWT, e toda requisição sai com um Bearer token fresco.

HTTPS puro e assinatura, sem biblioteca nativa

Nenhum dos dois componentes depende de nada além da pilha de cliente HTTP do runtime Core e das primitivas de criptografia da plataforma, então os dois compilam e rodam onde quer que o Delphi rode.

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
Suporte de IDE Uma única árvore de código-fonte, pacotes de design-time por versão
Delphi 7 a 13 C++ Builder
Instalador de avaliação A avaliação All-Access do sgcWebSockets inclui os componentes Auth
Um único download, os dois componentes

Baixar o instalador de avaliação →

Um pacote autônomo

O sgcAuth é licenciado por conta própria, a partir de €149 para um único desenvolvedor. Todas as licenças incluem código-fonte completo, 1 ano de atualizações e de 50% a 70% de desconto na renovação: 50% ao renovar um pacote, 60% para dois, 70% para três ou mais. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth e sgcHTTP contam cada um como um pacote.

sgcAuth

€149

Licenças Single, Team e Site disponíveis.

  • Cliente OAuth2: Authorization Code, PKCE, Client Credentials, Device Code
  • Cliente JWT para emitir, assinar & verificar tokens
  • Passkeys WebAuthn, via sgcCustomIndy (adicionado automaticamente)
  • Runtime sgcWebSockets Core incluído
  • Delphi 7 a 13 & C++ Builder
  • Código-fonte completo
  • 1 ano de atualizações

O sgcAuth inclui o runtime sgcWebSockets Core, então não há mais nada para comprar para os clientes OAuth2 e JWT.

O checkout lista dois itens: o direito de uso do runtime sgcWebSockets Core, cobrado a zero, e o próprio pacote sgcAuth. O sgcCustomIndy é adicionado automaticamente para o WebAuthn, remova-o se você já possui uma licença. Detalhes completos de preços.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso

Entregue autenticação, não uma biblioteca de tokens

OAuth2 e JWT a partir de código Delphi e C++ Builder nativo, com o runtime embutido e o código-fonte completo na caixa. Baixe o instalador de avaliação All-Access e coloque os dois componentes em um formulário hoje mesmo.

Outros produtos da eSeGeCe

Combine o sgcAuth com as nossas outras bibliotecas de componentes para Delphi, C++ Builder e .NET.

sgcWebSockets

A biblioteca completa: clientes e servidores WebSocket, HTTP/2, IoT, P2P e componentes de IA. As suas edições também incluem os clientes OAuth2 e JWT.

Saiba mais →

sgcCustomIndy

A biblioteca Indy personalizada sobre a qual o sgcWebSockets Enterprise é construído, empacotada como complemento. Necessária para o WebAuthn, adicionada automaticamente aos pedidos do sgcAuth.

Saiba mais →

sgcAI

Componentes de IA, LLM e MCP. Um único componente de chat alcança OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral.

Saiba mais →

sgcMQ

Componentes cliente nativos de MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka e STOMP, com o runtime Core embutido.

Saiba mais →

sgcSocial

Componentes cliente de WhatsApp Business Cloud API e Telegram TDLib, com o runtime Core embutido.

Saiba mais →

sgcHTML

Componentes de HTML e interface do lado do servidor, com reconhecimento de dados, para Delphi, C++ Builder e .NET, com Bootstrap 5 e htmx, incluindo um componente de UI de login WebAuthn.

Saiba mais →