sgcAuth OAuth2 e JWT, nativos no Delphi. Passkeys também.

Dois componentes levam o lado dos tokens da autenticação moderna para dentro do seu aplicativo. TsgcHTTP_OAuth2_Client executa os grants Authorization Code, PKCE, Client Credentials, Resource Owner Password e Device Code em qualquer provedor OAuth2/OIDC. TsgcHTTP_JWT_Client cria, assina e verifica JSON Web Tokens, de forma isolada ou como fonte do token Bearer para os seus clientes WebSocket e HTTP. Independente, com o runtime sgcWebSockets Core incluído.

  • OAuth2
  • JWT
  • Passkeys WebAuthn
  • PKCE, Device Code, DPoP
  • Delphi 7 a 13
  • C++ Builder
  • Código-fonte completo
  • 2Componentes cliente, OAuth2 e JWT, em uma única página da paleta
  • 9RFCs implementadas: OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE e mais
  • 5Plataformas de destino: Windows, macOS, Linux 64 bits, iOS e Android
  • 1Instalador independente, com o runtime Core dentro
  • 100%Código-fonte incluído em todas as licenças
Veja rodando

Veja o sgcAuth em dois minutos.

JWT, OAuth2 e WebAuthn, no lado do cliente e no lado do servidor, a partir do Delphi. Narrado e legendado. Nada é baixado até você apertar o play.

Quickstart do sgcAuth

Tokens, autorização delegada e passkeys em um só pacote.

  1. Três formas de entrarJWT quando você já conhece o usuário, OAuth2 quando um terceiro detém a identidade, WebAuthn quando não há senha nenhuma.
  2. Assinar um JWTDefina o algoritmo e o segredo, preencha os claims padrão e anexe o componente a um cliente WebSocket ou HTTP como token Bearer.
  3. Validar no servidorA assinatura, exp e nbf são verificados, e uma requisição com token inválido nunca chega ao seu handler.
  4. OAuth2 em um só componenteClient id, URLs do provedor, escopos e um tipo de grant. Ele abre o navegador e executa o servidor local de redirecionamento por você.
  5. WebAuthn e passkeysRegistro e asserção conduzidos pelo componente de servidor. A chave privada nunca sai do dispositivo.
O que vem no pacote

Um componente por tarefa, um único estilo de API.

Solte um componente em um formulário, defina os dados do provedor ou da chave, ligue os eventos e chame Start ou Sign. A nomenclatura é consistente entre os dois, então um fluxo de autenticação se lê igual, seja qual for o grant ou o algoritmo.

Todos os tipos de grant, um só componente

TsgcHTTP_OAuth2_Client controla OAuth2Options.GrantType usando auth2Code para aplicativos confiáveis no servidor, auth2CodePKCE para aplicativos nativos, móveis e de página única, auth2ClientCredentials para daemons e contas de serviço, auth2ResourceOwnerPassword, e auth2DeviceCode (RFC 8628) para smart TVs, quiosques e outros dispositivos com entrada limitada.

Ver o cliente OAuth2 →

O ciclo de vida completo do token

Start 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 por HTTPS puro. Refresh, Revoke e Introspect cobrem o ciclo de vida do token a partir daí, e DPoPOptions adiciona proof-of-possession (RFC 9449) para provedores que o exigem.

Métodos do ciclo de vida →

Assine, anexe ou verifique, você escolhe

TsgcHTTP_JWT_Client publica tudo o que a RFC 7519 exige por meio de JWTOptions: o JOSE Header, os claims registrados do Payload (iss, sub, aud, exp, nbf, iat, jti, além de claims personalizados) e o material de chave para HMAC, RSA e ECDSA. Chame Sign para obter diretamente o token em serialização compacta, ou defina RefreshTokenAfter e deixe o componente reassinar automaticamente.

Ver o cliente JWT →

Um Bearer token novo a cada requisição

O componente JWT se conecta diretamente a Authentication.Token.JWT no TsgcWebSocketClient, TsgcHTTP1Client e TsgcHTTP2Client, então cada requisição de saída leva um Bearer token novo sem uma linha de código de cabeçalho.

Veja o código →

Passkeys, via sgcCustomIndy

O login sem senha é atendido pelo TsgcWSAPIServer_WebAuthn, um componente sgcWebSockets Enterprise/All-Access construído sobre a biblioteca Indy modificada que o sgcCustomIndy fornece como complemento. Ele sempre está incluído quando você pede o sgcAuth, e os componentes TOTP, LDAP, SAML, OpenID Connect e Mail OAuth2 também.

Veja o que ele faz →

Login, contas de serviço e as suas próprias APIs

Login com Google ou Microsoft, acesso a APIs de servidor para servidor, smart TVs e quiosques, sessões longas sem pedir credenciais de novo e tokens Bearer para as suas próprias APIs WebSocket e HTTP. Os dois componentes funcionam bem dentro de um aplicativo VCL ou FMX, de um serviço ou de um processo de console.

A matriz de recursos →

HTTPS puro e assinatura, sem biblioteca nativa

Nenhum dos 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 o Delphi roda: Windows, macOS, Linux 64 bits, iOS e Android. Do Delphi 7 ao RAD Studio 13 e no C++ Builder.

A matriz de recursos →

Qualquer provedor, com presets incluídos

O sgcAuth fala os padrões publicados OAuth2/OIDC e JWT/JWS em vez de encapsular o SDK de um fornecedor, então o provedor é escolha sua: Google, Microsoft, Auth0, Okta, Keycloak ou qualquer servidor de autorização compatível com as RFCs. Presets prontos de Google e Microsoft configuram para você os endpoints e escopos mais comuns.

Configuração do provedor →

Código-fonte completo, sem royalties

O sgcAuth é um pacote independente. Ele inclui o runtime sgcWebSockets Core em que se baseia, e toda licença traz o código-fonte completo, então as trocas de token podem ser percorridas no seu próprio depurador. A distribuição é livre de royalties.

Ver preços →

Páginas de referência de cada componente:

O código

Obtenha um token, assine um token.

Configure as opções e depois chame um método. Os dois componentes compilam no Delphi 7 a 13 e no C++ Builder, e as mesmas propriedades são expostas no .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;

O mesmo formato em Object Pascal e em C++ Builder. A matriz completa de recursos →

  1. Solte um componente em um formulárioTsgcHTTP_OAuth2_Client e TsgcHTTP_JWT_Client ficam em uma única página da paleta.
  2. Defina o provedor ou a chaveURLs de autorização e de token, client id e escopos para OAuth2. Algoritmo, segredo ou par de chaves e claims para JWT.
  3. Ligue os eventosOnAfterAccessToken entrega o token a você, e as chamadas de refresh, revogação e introspecção seguem o mesmo padrão.
  4. Chame Start ou SignOu entregue o componente JWT a um cliente WebSocket ou HTTP e deixe que ele anexe um Bearer token novo a cada requisição.
Um olhar mais de perto

Três formas de entrar, um só pacote.

Quadros do vídeo de quickstart do sgcAuth.

Um JWT viaja do componente cliente ao servidor como token Bearer, onde assinatura, exp, nbf, iss e aud são verificados

Assinado no cliente, verificado no servidor.

O cliente JWT assina com HMAC, RSA ou ECDSA e viaja como um cabeçalho Authorization: Bearer . Do outro lado, a assinatura é verificada com o mesmo segredo ou com a chave pública, tokens expirados e ainda não válidos são rejeitados, e uma requisição com token inválido nunca chega ao seu handler.

Os tipos de grant OAuth2 no sgcAuth: authorization code, code com PKCE, client credentials, resource owner password e device code, com refresh, revogação, introspecção e DPoP

Escolha o grant que se encaixa no aplicativo.

Authorization Code para aplicativos web com back end, PKCE para aplicativos nativos e móveis, Client Credentials para máquina a máquina, Device Code para TVs e consoles. Refresh, revogação, introspecção e DPoP também são tratados para você.

O fluxo WebAuthn entre o navegador, o autenticador e o seu servidor: desafio, assinatura, verificação

Sem senha e sem segredo compartilhado para vazar.

O servidor envia um desafio aleatório, o autenticador o assina com a chave privada e o servidor o confere com a chave pública armazenada. O usuário entra com uma passkey, uma impressão digital ou uma chave de hardware, e a chave privada nunca sai do dispositivo.

Antes de comprar

Quatro coisas que vale saber antes.

O que o sgcAuth precisa de você, se você já possui estes componentes, o que o WebAuthn exige além disso e quais IDEs ele atende. As respostas são curtas e estão nesta página, e não nas letras miúdas.

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. O sgcAuth é independenteO runtime sgcWebSockets Core está incluído: a pilha de cliente HTTP/TLS pela qual os dois componentes enviam as requisições de token e o mecanismo JSON que interpreta as respostas. Um instalador, código-fonte completo na caixa.
  2. Já está na sua edição do sgcWebSockets?Os dois clientes vêm dentro do sgcWebSockets a partir da edição Standard. O sgcAuth existe para o caso oposto: suporte a clientes OAuth2 e JWT sem licenciar uma edição completa do sgcWebSockets.
  3. O WebAuthn precisa do sgcCustomIndyTsgcWSAPIServer_WebAuthn é construído sobre a biblioteca Indy modificada que o sgcCustomIndy fornece como complemento. Ele sempre está incluído quando você pede o sgcAuth, e o preço do sgcAuth exibido já o cobre.
  4. Delphi e C++ BuilderO sgcAuth atende do Delphi 7 ao RAD Studio 13 e o C++ Builder. O instalador de avaliação gratuito é o trial do sgcWebSockets All-Access, então os dois componentes podem ser avaliados hoje.

Grants, refresh, revogação e assinatura são métodos e eventos de primeira classe, e o código-fonte completo significa que nada no meio é uma caixa-preta. Todos os componentes e propriedades →

Parte do sgcWebSockets

Licenciado de forma independente, ou já na sua edição.

O sgcAuth é um pacote da família sgcWebSockets. Compre-o de forma independente, com o runtime Core incluído, ou receba os dois clientes com qualquer edição do sgcWebSockets a partir da Standard.

sgcAuth

Os clientes OAuth2 e JWT, independentes, com o runtime sgcWebSockets Core incluído.

€298 / licença Single
  • Cliente OAuth2: Authorization Code, PKCE, Client Credentials, Device Code
  • Cliente JWT para emitir, assinar e verificar tokens
  • Passkeys WebAuthn, via sgcCustomIndy (incluído)
  • TOTP, LDAP, SAML, OpenID Connect e Mail OAuth2, via sgcCustomIndy
  • Código-fonte completo e 1 ano de atualizações
Preços do sgcAuth →

Team e Site

O mesmo pacote, licenciado para uma equipe inteira ou para um site inteiro.

Team €498 Site €798
  • Tudo o que há na licença Single
  • O direito ao runtime sgcWebSockets Core, cobrado a zero
  • sgcCustomIndy, exigido pelo WebAuthn, sempre incluído
  • Delphi 7 a 13 e C++ Builder
Compare as licenças →

sgcWebSockets

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

€380 / Standard
  • Os dois clientes a partir da edição Standard
  • Os componentes WebAuthn, TOTP, LDAP, SAML, OpenID Connect e Mail OAuth2 vêm na Enterprise
  • É aqui que mora o runtime Core
Conhecer o sgcWebSockets →

Se você tem qualquer edição do sgcWebSockets, já tem os dois clientes. O sgcAuth é para OAuth2 e JWT sem licenciar uma edição completa do sgcWebSockets.

Ver preços e licenças
DEPOIMENTOS

O Que os Desenvolvedores Dizem

Confiado por desenvolvedores Delphi, C++ Builder, Lazarus e .NET ao redor do mundo.

A biblioteca sgcWebSockets de vocês é muito útil e fácil de configurar. Continuem com o ótimo trabalho!
Simone Moretti Desenvolvedor Delphi
O sgcWebSockets é incrível e o suporte de vocês é o melhor!
Christian Meyer Fundador & CTO
Muito obrigado pela ajuda e pelo suporte, eu adoro os componentes de vocês.
Mark Steinfeld CTO

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

OAuth2 e JWT em um só pacote, com o runtime sgcWebSockets Core incluído e o código-fonte completo na caixa.

O ecossistema

Outros Produtos da eSeGeCe

O sgcAuth é uma das bibliotecas de componentes da eSeGeCe para Delphi, C++ Builder e .NET. Elas compartilham convenções, vêm com o código-fonte completo e são distribuídas sem royalties.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA e mais de 30 integrações de API para Delphi, C++ Builder, Lazarus e .NET. É aqui que mora o runtime Core.

sgcHTTP

Servidor HTTP, cliente HTTP/2, cliente gRPC e clientes Google Cloud Pub/Sub, Calendar e FCM para Delphi e C++ Builder. Produto autônomo, com o runtime sgcWebSockets Core incluído.

sgcREST

Servidor REST, servidor OpenAPI e componentes cliente OpenAPI para Delphi e C++ Builder. Produto autônomo, com o runtime sgcWebSockets Core incluído.

sgcMQ

Componentes cliente MQTT, AMQP 0.9.1 e 1.0, Apache Kafka e STOMP para Delphi e C++ Builder. Independente, com o runtime sgcWebSockets Core incluído.

sgcAI

Componentes de IA, LLM e MCP para Delphi e C++ Builder. Sete provedores de LLM por trás de um único componente, além de MCP, embeddings e fala. Produto autônomo, com o runtime sgcWebSockets Core incluído.

sgcSocial

Componentes cliente Telegram e WhatsApp Business para Delphi e C++ Builder. Independente, com o runtime sgcWebSockets Core incluído.

sgcHTML

Componentes HTML e de UI no servidor sobre Bootstrap 5 e htmx, incluindo um componente de UI de login WebAuthn.

sgcQUIC

Transporte QUIC bruto e um cliente e servidor HTTP/3, com WebTransport. Um complemento do sgcWebSockets Enterprise.

sgcOpenAPI

Analisador OpenAPI 3.x, gerador nativo de SDK Pascal, componente servidor OpenAPI e mais de 1.195 SDKs de nuvem pré-compilados.

sgcSign

XAdES, PAdES, CAdES e ASiC para documentos, Authenticode, ClickOnce, NuGet e VSIX para código.

sgcPDF

Crie, edite, visualize, assine, censure e valide arquivos PDF em Object Pascal puro, sem DLL para implantar. Licenciado separadamente.

sgcBiometrics

Windows Hello, sensores de impressão digital e o Windows Biometric Framework para Delphi e C++ Builder.

Pacotes, complementos e mais

Últimas do blog

Ver todas as publicações →

Você está vendo a visão sgcAuth da eSeGeCe.

Mostre outro ângulo →
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