Provider OAuth 2.0

Avvia il tuo authorization server OAuth 2.0 in Delphi. Endpoint authorize, token, refresh e revoke con PKCE, access token JWT firmati e storage pluggabile.

TsgcHTTP_OAuth2_Server_Provider

Implementazione completa di un authorization server OAuth 2.0: registra i client, emette authorization code, li scambia per access + refresh token, firma i JWT e supporta PKCE, rotazione dei refresh token e revoca.

Classe del componente

TsgcHTTP_OAuth2_Server_Provider

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Enterprise

Trascina, configura i client e avvia

Trascina un TsgcHTTP_OAuth2_Server_Provider, registra i tuoi client_id e redirect_uri, collegalo a TsgcWebSocketHTTPServer — gli endpoint standard (/authorize, /token, /revoke) diventano disponibili.

uses
  sgcWebSocket, sgcHTTP;

var
  Server: TsgcWebSocketHTTPServer;
  Provider: TsgcHTTP_OAuth2_Server_Provider;
begin
  Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
  Provider.ProviderOptions.AuthorizationEndpoint := '/oauth/authorize';
  Provider.ProviderOptions.TokenEndpoint         := '/oauth/token';
  Provider.ProviderOptions.RevocationEndpoint    := '/oauth/revoke';
  Provider.ProviderOptions.PKCE.Required := True;

  Provider.OnAuthorizeRequest := procedure(Sender: TObject;
    const aRequest: TsgcOAuth2_AuthorizeRequest;
    var aResponse: TsgcOAuth2_AuthorizeResponse)
  begin
    // convalida la sessione utente, emetti o nega l'auth code
    aResponse.Code := GenerateAuthCode(aRequest.ClientId, aRequest.UserId);
  end;

  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 8443;
  Server.SSL  := True;
  Server.OAuth2.Provider := Provider;
  Server.Active := True;
end;
// uses: sgcWebSocket, sgcHTTP
TsgcHTTP_OAuth2_Server_Provider *Provider = new TsgcHTTP_OAuth2_Server_Provider(this);
Provider->ProviderOptions->AuthorizationEndpoint = "/oauth/authorize";
Provider->ProviderOptions->TokenEndpoint        = "/oauth/token";

TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
Server->OAuth2->Provider = Provider;
Server->Active = true;

Cosa contiene

Un authorization server self-hosted — tutto, da /authorize alla rotazione dei refresh token, in un unico componente Delphi.

Endpoint authorize

Gestisce le richieste GET /authorize, valida response_type, client_id e redirect_uri e poi solleva OnAuthorizeRequest per la tua UI di login basata su sessione utente.

Endpoint token

POST /token emette access + refresh token per i grant authorization_code, refresh_token e client_credentials. Il code_verifier PKCE viene verificato secondo la RFC 7636.

Access token firmati come JWT

Facoltativamente emetti access token JWT self-contained (HS o RS / ES) in modo che i resource server possano convalidarli senza un round-trip di introspection.

Rotazione dei refresh token

Quando ProviderOptions.RefreshToken.Rotation è abilitato, ogni refresh emette un nuovo refresh token e invalida il precedente — in linea con le best practice di OAuth 2.1.

Endpoint di revoca

POST /revoke invalida un access o un refresh token secondo la RFC 7009 — supporta sia le revoche dei Bearer sia quelle dei client_credentials.

Storage pluggabile

OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken e simili ti permettono di backare il provider con FireDAC, SQLite, Redis o il tuo DAL.

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_OAuth2_Server_Provider Riferimento completo di proprietà, metodi ed eventi per questo componente.
Progetto demo — Demos\20.HTTP_Protocol\08.OAuth2_ServerProvider 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 gestire il tuo provider OAuth 2.0?

Scarica la versione di prova gratuita e avvia un authorization server OAuth 2.0 in Delphi.