JWT Server

Walidacja JWT po stronie serwera. Podłącz TsgcHTTP_JWT_Server do TsgcWebSocketHTTPServer, aby weryfikować tokeny Bearer przed przekazaniem żądań.

TsgcHTTP_JWT_Server

Weryfikuje przychodzące JWT względem kluczy podpisujących (HMAC, RSA, ECDSA, EdDSA), sprawdza roszczenia exp/nbf/aud/iss i odrzuca niezgodne tokeny, wywołując typowane zdarzenie dla warstwy aplikacji.

Klasa komponentu

TsgcHTTP_JWT_Server

Protokół

RFC 7519 (JWT)

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Enterprise

Upuść, podłącz do serwera, weryfikuj każde żądanie

Upuść TsgcHTTP_JWT_Server, skonfiguruj klucze weryfikujące (lub URL JWKS) i dołącz do TsgcWebSocketHTTPServer.JWT — wszystkie przychodzące żądania są automatycznie walidowane.

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;

Co jest w środku

Weryfikator JWT po stronie serwera, integrujący się bezpośrednio z uwierzytelnianiem TsgcWebSocketHTTPServer i TsgcWebSocketServer.

Weryfikacja wielo-algorytmiczna

Obsługuje HS256/384/512, RS256/384/512, ES256/384/512, PS256/384/512 i EdDSA. Można załadować wiele kluczy (indeksowanych kid) na potrzeby rotacji kluczy.

Sprawdzanie standardowych roszczeń

Verify.Issuer, Verify.Audience, Verify.Subject, Verify.NotBefore, Verify.ExpirationTime — wszystkie są domyślnie weryfikowane względem przychodzącego payloadu.

Punkt końcowy JWKS

Wskaż JWTOptions.JWKS.URL na punkt końcowy JWKS wystawcy — komponent pobiera klucze publiczne, buforuje je i rotuje zgodnie z JWK kid w nagłówku każdego tokenu.

Zdarzenie błędu

OnAuthError ujawnia powód odrzucenia (niezgodność podpisu, wygaśnięcie, niezgodność odbiorcy) — aplikacja decyduje, czy zwrócić 401, czy zastosować fallback.

Hooki WebSocket

Działa również dla TsgcWebSocketServer — upgrade WebSocket przenosi nagłówek Authorization, a serwer JWT weryfikuje go przed wywołaniem OnConnect.

Obsługa JWE

Zaszyfrowane tokeny JWE są dekodowane i weryfikowane inline przy użyciu skonfigurowanego klucza prywatnego (owijanie kluczy RSA-OAEP, ECDH-ES; szyfrowanie treści AES-CBC / AES-GCM).

Specyfikacje i źródła

Authoritative sources for the standards this component implements.

Dokumentacja i wersje demo

Deep-link do dokumentacji komponentu, gotowy do uruchomienia projekt demonstracyjny i pobranie wersji próbnej.

Pomoc online — TsgcHTTP_JWT_Server Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\20.HTTP_Protocol\05.JWT Gotowy do uruchomienia projekt przykładowy. Dostarczany wewnątrz pakietu sgcWebSockets — pobierz wersję próbną poniżej.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł pierwotnych — tylko ten komponent.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.

Gotowy do weryfikacji JWT po stronie serwera?

Pobierz bezpłatną wersję próbną i dodaj walidację JWT do swoich serwerów Delphi.