Server JWT

Validazione JWT lato server. Collega TsgcHTTP_JWT_Server a un TsgcWebSocketHTTPServer per verificare i Bearer token Authorization prima di smistare le richieste.

TsgcHTTP_JWT_Server

Verifica i JWT in ingresso rispetto alle tue chiavi di firma (HMAC, RSA, ECDSA, EdDSA), controlla i claim exp/nbf/aud/iss e rifiuta i token non corrispondenti con un evento tipizzato per il livello applicativo.

Classe del componente

TsgcHTTP_JWT_Server

Protocollo

RFC 7519 (JWT)

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Enterprise

Trascina, collega al server e verifica a ogni richiesta

Trascina un TsgcHTTP_JWT_Server, configura le chiavi di verifica (o un URL JWKS) e collegalo a TsgcWebSocketHTTPServer.JWT — tutte le richieste in ingresso vengono validate 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;

Cosa contiene

Verifier JWT lato server che si integra direttamente con l'autenticazione di TsgcWebSocketHTTPServer e TsgcWebSocketServer.

Verifica multi-algoritmo

Supporta HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512 ed EdDSA. È possibile caricare più chiavi (indicizzate per kid) per la rotazione delle chiavi.

Controlli sui claim standard

Verify.Issuer, Verify.Audience, Verify.Subject, Verify.NotBefore, Verify.ExpirationTime sono tutti applicati di default al payload in ingresso.

Endpoint JWKS

Punta JWTOptions.JWKS.URL a un endpoint JWKS dell'issuer — il componente recupera le chiavi pubbliche, le memorizza in cache e ruota in base al kid JWK presente nell'header di ogni token.

Evento di errore

OnAuthError espone il motivo del rifiuto (firma non corrispondente, scaduto, audience non corrispondente); la tua app decide se rispondere 401 o fare fallback.

Hook WebSocket

Funziona anche per TsgcWebSocketServer — l'upgrade WebSocket porta l'header Authorization, il server JWT lo verifica prima che venga chiamato OnConnect.

Supporto JWE

I token JWE cifrati vengono decodificati e verificati inline usando la chiave privata configurata (RSA-OAEP, key wrap ECDH-ES; cifratura del contenuto AES-CBC / AES-GCM).

Specifiche e riferimenti

Fonti autorevoli per gli standard implementati da questo componente.

Documentazione e demo

Vai al riferimento del componente, scarica il progetto demo pronto all'uso e prova la versione trial.

Guida online — TsgcHTTP_JWT_Server Riferimento completo di proprietà, metodi ed eventi per questo componente.
Progetto demo — Demos\20.HTTP_Protocol\05.JWT Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente.
Manuale utente (PDF) Manuale completo che copre tutti i componenti della libreria.

Pronto a verificare i JWT lato server?

Scarica la versione di prova gratuita e aggiungi la validazione JWT ai tuoi server Delphi.