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.
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.
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.
TsgcHTTP_OAuth2_Server_Provider
Windows, macOS, Linux, iOS, Android
Enterprise
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;
Serwer autoryzacji hostowany samodzielnie — wszystko od /authorize do rotacji tokenu odświeżania w jednym komponencie Delphi.
Obsługuje żądania GET /authorize, waliduje response_type, client_id i redirect_uri, następnie wywołuje OnAuthorizeRequest dla interfejsu logowania sesji użytkownika.
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.
Opcjonalnie wystawiaj samodzielne tokeny dostępu JWT (HS lub RS / ES), aby serwery zasobów mogły je walidować bez dodatkowego zapytania introspekcji.
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.
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.
OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken i pokrewne zdarzenia pozwalają podpiąć provider pod FireDAC, SQLite, Redis lub własną warstwę DAL.
Autorytatywne źródła dla standardów implementowanych przez ten komponent.
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. | Otwórz | |
| 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. | Otwórz | |
| Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł pierwotnych — tylko ten komponent. | Otwórz | |
| Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki. | Otwórz |