OAuth 2.0 Provider
Betreiben Sie Ihren eigenen OAuth 2.0 Autorisierungsserver in Delphi. Authorize-, Token-, Refresh- und Revoke-Endpunkte mit PKCE, signierten JWT-Access-Tokens und austauschbarer Speicherung.
Betreiben Sie Ihren eigenen OAuth 2.0 Autorisierungsserver in Delphi. Authorize-, Token-, Refresh- und Revoke-Endpunkte mit PKCE, signierten JWT-Access-Tokens und austauschbarer Speicherung.
Vollständige OAuth 2.0 Autorisierungsserver-Implementierung: registriert Clients, stellt Autorisierungscodes aus, tauscht sie gegen Access- und Refresh-Tokens, signiert JWTs und unterstützt PKCE, Refresh-Rotation und Widerruf.
TsgcHTTP_OAuth2_Server_Provider
Windows, macOS, Linux, iOS, Android
Enterprise
Platzieren Sie einen TsgcHTTP_OAuth2_Server_Provider, registrieren Sie Ihre client_ids und redirect_uris und binden Sie ihn an TsgcWebSocketHTTPServer an — die Standard-Endpunkte (/authorize, /token, /revoke) werden verfügbar.
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;
Ein selbst gehosteter Autorisierungsserver — alles von /authorize bis zur Refresh-Token-Rotation in einer einzigen Delphi-Komponente.
Verarbeitet GET-/authorize-Anfragen, validiert response_type, client_id und redirect_uri und löst anschließend OnAuthorizeRequest für Ihre Login-Oberfläche der Benutzersitzung aus.
POST /token stellt Access- und Refresh-Tokens für die Grants authorization_code, refresh_token und client_credentials aus. Der PKCE-code_verifier wird gemäß RFC 7636 verifiziert.
Optional eigenständige JWT-Access-Tokens (HS oder RS / ES) ausstellen, sodass Resource-Server ohne Introspektions-Roundtrip validieren können.
Wenn ProviderOptions.RefreshToken.Rotation aktiviert ist, stellt jeder Refresh ein neues Refresh-Token aus und entwertet das vorherige — im Einklang mit der OAuth 2.1 Best Practice.
POST /revoke entwertet ein Access- oder Refresh-Token gemäß RFC 7009 — berücksichtigt sowohl Bearer- als auch client_credentials-Widerrufe.
Mit OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken und ähnlichen Ereignissen können Sie den Provider mit FireDAC, SQLite, Redis oder Ihrer eigenen DAL hinterlegen.
Maßgebliche Quellen für die Standards, die diese Komponente implementiert.
Springe direkt zur Komponentenreferenz, lade das einsatzbereite Demo-Projekt herunter und teste die Testversion.
| Online-Hilfe — TsgcHTTP_OAuth2_Server_Provider Vollständige Eigenschaften-, Methoden- und Ereignisreferenz für diese Komponente. | Öffnen | |
| Demo-Projekt — Demos\20.HTTP_Protocol\08.OAuth2_ServerProvider Einsatzbereites Beispielprojekt. Im sgcWebSockets-Paket enthalten — lade unten die Testversion herunter. | Öffnen | |
| Technisches Dokument (PDF) Funktionen, Schnellstart, Codebeispiele für Delphi & C++ Builder und Primärquellenreferenzen — nur für diese Komponente. | Öffnen | |
| Benutzerhandbuch (PDF) Umfassendes Handbuch zu jeder Komponente der Bibliothek. | Öffnen |