JWT Server

Validação de JWT no servidor. Conecte o TsgcHTTP_JWT_Server a um TsgcWebSocketHTTPServer para verificar tokens Authorization Bearer antes de despachar as requisições.

TsgcHTTP_JWT_Server

Verifica JWTs de entrada em relação às suas chaves de assinatura (HMAC, RSA, ECDSA, EdDSA), confere as claims exp/nbf/aud/iss e rejeita tokens com falha por meio de um evento tipado para a camada da aplicação.

Classe do componente

TsgcHTTP_JWT_Server

Protocolo

RFC 7519 (JWT)

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Enterprise

Solte, vincule ao servidor, verifique em cada requisição

Solte um TsgcHTTP_JWT_Server, configure as chaves de verificação (ou uma URL JWKS) e vincule ao TsgcWebSocketHTTPServer.JWT — todas as requisições recebidas são validadas automaticamente.

uses
  sgcWebSocket, sgcHTTP;

var
  Server: TsgcWebSocketHTTPServer;
  JWT: TsgcHTTP_JWT_Server;
begin
  JWT := TsgcHTTP_JWT_Server.Create(nil);
  JWT.JWTOptions.Algorithms.HS.Secret := 'shared-secret';
  JWT.JWTOptions.Verify.Issuer   := 'auth.example.com';
  JWT.JWTOptions.Verify.Audience := 'api.example.com';

  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 8443;
  Server.SSL  := True;
  Server.Authentication.JWT.Enabled := True;
  Server.Authentication.JWT.Server  := JWT;

  Server.Active := True;
end;
// uses: sgcWebSocket, sgcHTTP
TsgcHTTP_JWT_Server *JWT = new TsgcHTTP_JWT_Server(this);
JWT->JWTOptions->Algorithms->HS->Secret = "shared-secret";

TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
Server->Authentication->JWT->Enabled = true;
Server->Authentication->JWT->Server  = JWT;
Server->Active = true;

O que tem por dentro

Verificador JWT no servidor que se integra diretamente à autenticação do TsgcWebSocketHTTPServer e TsgcWebSocketServer.

Verificação multi-algoritmo

Suporta HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512 e EdDSA. Múltiplas chaves (indexadas por kid) podem ser carregadas para rotação de chaves.

Verificação de claims padrão

Verify.Issuer, Verify.Audience, Verify.Subject, Verify.NotBefore, Verify.ExpirationTime são todos verificados no payload recebido por padrão.

Endpoint JWKS

Aponte JWTOptions.JWKS.URL para um endpoint JWKS do emissor — o componente busca as chaves públicas, faz cache e as rotaciona conforme o kid JWK no cabeçalho de cada token.

Evento de falha

OnAuthError expõe o motivo da rejeição (assinatura inválida, expirado, audience incompatível); sua aplicação decide se retorna 401 ou faz fallback.

Hooks WebSocket

Funciona também para TsgcWebSocketServer — o upgrade WebSocket carrega o cabeçalho Authorization, e o servidor JWT verifica antes de disparar OnConnect.

Suporte a JWE

Tokens JWE criptografados são decodificados e verificados inline usando a chave privada configurada (wrap de chave RSA-OAEP, ECDH-ES; criptografia de conteúdo AES-CBC / AES-GCM).

Especificações e referências

Fontes autoritativas dos padrões que este componente implementa.

Documentação e demos

Acesse a referência do componente, obtenha o projeto demo pronto para executar e baixe a versão de avaliação.

Ajuda online — TsgcHTTP_JWT_Server Referência completa de propriedades, métodos e eventos deste componente.
Projeto de demonstração — Demos\20.HTTP_Protocol\05.JWT Projeto de exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo.
Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente este componente.
Manual do usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca.

Pronto para verificar JWTs no servidor?

Baixe a versão de avaliação gratuita e adicione validação JWT aos seus servidores Delphi.