OAuth 2.0-provider

Zet je eigen OAuth 2.0-autorisatieserver op in Delphi. Authorize-, token-, refresh- en revoke-endpoints met PKCE, ondertekende JWT-access-tokens en pluggable storage.

TsgcHTTP_OAuth2_Server_Provider

Volledige OAuth 2.0-autorisatieserver-implementatie: registreert clients, geeft authorization codes uit, wisselt ze in voor access- + refresh-tokens, ondertekent JWT's en ondersteunt PKCE, refresh-rotatie en revocatie.

Componentklasse

TsgcHTTP_OAuth2_Server_Provider

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Enterprise

Plaats, configureer clients, draai

Plaats een TsgcHTTP_OAuth2_Server_Provider, registreer je client_ids en redirect_uris, koppel aan TsgcWebSocketHTTPServer — de standaardendpoints (/authorize, /token, /revoke) komen beschikbaar.

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
    // valideer de gebruikerssessie, geef de auth-code uit of weiger deze
    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;

Wat zit erin

Een zelf-gehoste autorisatieserver — alles van /authorize tot refresh-token-rotatie in één Delphi-component.

Authorize-endpoint

Verwerkt GET /authorize-aanvragen, valideert response_type, client_id en redirect_uri en triggert daarna OnAuthorizeRequest voor je login-UI met gebruikerssessie.

Token-endpoint

POST /token geeft access- + refresh-tokens uit voor de authorization_code-, refresh_token- en client_credentials-grants. De PKCE-code_verifier wordt geverifieerd volgens RFC 7636.

JWT-ondertekende access-tokens

Geef optioneel self-contained JWT-access-tokens (HS of RS / ES) uit zodat resource-servers kunnen valideren zonder een introspectie-round-trip.

Refresh-token-rotatie

Wanneer ProviderOptions.RefreshToken.Rotation is ingeschakeld, geeft elke refresh een nieuw refresh-token uit en wordt het vorige ongeldig — in lijn met de OAuth 2.1-best-practice.

Revocatie-endpoint

POST /revoke maakt een access- of refresh-token ongeldig volgens RFC 7009 — ondersteunt zowel Bearer- als client_credentials-revocaties.

Pluggable storage

Met OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken en vrienden onderbouw je de provider met FireDAC, SQLite, Redis of je eigen DAL.

Specificaties & referenties

Gezaghebbende bronnen voor de standaarden die dit component implementeert.

Documentatie & demo's

Deep-link naar de componentreferentie, pak het direct uitvoerbare demoproject en download de proefversie.

Online help — TsgcHTTP_OAuth2_Server_Provider Volledige property-, methode- en event-referentie voor dit component.
Demoproject — Demos\20.HTTP_Protocol\08.OAuth2_ServerProvider Direct uitvoerbaar voorbeeldproject. Zit in het sgcWebSockets-package — download de proefversie hieronder.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronreferenties — alleen dit component.
Gebruikershandleiding (PDF) Uitgebreide handleiding die elk component in de bibliotheek behandelt.

Klaar om je eigen OAuth 2.0-provider te draaien?

Download de gratis proefversie en zet een OAuth 2.0-autorisatieserver op in Delphi.