OAuth 2.0 Provider (TsgcHTTP_OAuth2_Server_Provider) — sgcWebSockets | eSeGeCe

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.

TsgcHTTP_OAuth2_Server_Provider

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.

Komponentenklasse

TsgcHTTP_OAuth2_Server_Provider

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Enterprise

Platzieren, Clients konfigurieren, starten

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;

Was steckt drin

Ein selbst gehosteter Autorisierungsserver — alles von /authorize bis zur Refresh-Token-Rotation in einer einzigen Delphi-Komponente.

Authorize-Endpunkt

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.

Token-Endpunkt

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.

JWT-signierte Access-Tokens

Optional eigenständige JWT-Access-Tokens (HS oder RS / ES) ausstellen, sodass Resource-Server ohne Introspektions-Roundtrip validieren können.

Refresh-Token-Rotation

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.

Revoke-Endpunkt

POST /revoke entwertet ein Access- oder Refresh-Token gemäß RFC 7009 — berücksichtigt sowohl Bearer- als auch client_credentials-Widerrufe.

Austauschbare Speicherung

Mit OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken und ähnlichen Ereignissen können Sie den Provider mit FireDAC, SQLite, Redis oder Ihrer eigenen DAL hinterlegen.

Spezifikationen & Referenzen

Maßgebliche Quellen für die Standards, die diese Komponente implementiert.

Dokumentation & Demos

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.
Demo-Projekt — Demos\20.HTTP_Protocol\08.OAuth2_ServerProvider Einsatzbereites Beispielprojekt. Im sgcWebSockets-Paket enthalten — lade unten die Testversion herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Codebeispiele für Delphi & C++ Builder und Primärquellenreferenzen — nur für diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch zu jeder Komponente der Bibliothek.

Bereit, Ihren eigenen OAuth 2.0 Provider zu betreiben?

Laden Sie die kostenlose Testversion herunter und richten Sie einen OAuth 2.0 Autorisierungsserver in Delphi ein.