OAuth 2.0 Provider

Uruchom własny serwer autoryzacji OAuth 2.0 w Delphi. Punkty końcowe authorize, token, refresh i revoke z PKCE, podpisanymi tokenami JWT i wymienialnym magazynem.

TsgcHTTP_OAuth2_Server_Provider

Pełna implementacja serwera autoryzacji OAuth 2.0: rejestruje klientów, wystawia kody autoryzacji, wymienia je na tokeny dostępu i odświeżania, podpisuje JWT oraz obsługuje PKCE, rotację odświeżania i unieważnianie.

Klasa komponentu

TsgcHTTP_OAuth2_Server_Provider

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Enterprise

Upuść, skonfiguruj klientów, uruchom

Upuść TsgcHTTP_OAuth2_Server_Provider, zarejestruj swoje client_ids i redirect_uris, dołącz do TsgcWebSocketHTTPServer — standardowe punkty końcowe (/authorize, /token, /revoke) stają się dostępne.

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
    // validate user session, issue or deny the 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;

Co jest w środku

Serwer autoryzacji hostowany samodzielnie — wszystko od /authorize do rotacji tokenu odświeżania w jednym komponencie Delphi.

Punkt końcowy authorize

Obsługuje żądania GET /authorize, waliduje response_type, client_id i redirect_uri, następnie wywołuje OnAuthorizeRequest dla interfejsu logowania sesji użytkownika.

Punkt końcowy token

POST /token wystawia tokeny dostępu i odświeżania dla grantów authorization_code, refresh_token i client_credentials. PKCE code_verifier jest weryfikowany zgodnie z RFC 7636.

Tokeny dostępu podpisane JWT

Opcjonalnie wystawiaj samodzielne tokeny dostępu JWT (HS lub RS / ES), aby serwery zasobów mogły je walidować bez dodatkowego zapytania introspekcji.

Rotacja tokenu odświeżania

Gdy włączona jest opcja ProviderOptions.RefreshToken.Rotation, każde odświeżenie wystawia nowy token odświeżania i unieważnia poprzedni — zgodnie z najlepszymi praktykami OAuth 2.1.

Punkt końcowy revoke

POST /revoke unieważnia token dostępu lub odświeżania zgodnie z RFC 7009 — obsługuje zarówno unieważnienia Bearer, jak i client_credentials.

Wymienialne repozytorium

OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken i pokrewne zdarzenia pozwalają podpiąć provider pod FireDAC, SQLite, Redis lub własną warstwę DAL.

Specyfikacje i źródła

Autorytatywne źródła dla standardów implementowanych przez ten komponent.

Dokumentacja i wersje demo

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

Pomoc online — TsgcHTTP_OAuth2_Server_Provider Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\20.HTTP_Protocol\08.OAuth2_ServerProvider 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, aby uruchomić własny dostawca OAuth 2.0?

Pobierz bezpłatną wersję próbną i uruchom serwer autoryzacji OAuth 2.0 w Delphi.