Delphi OpenID Connect Client

Melden Sie Benutzer mit Google, Microsoft Entra ID, Okta, Auth0, Keycloak oder AWS Cognito an, und wissen Sie, wer sie sind. Die Komponente erkennt den Provider automatisch, führt den Browser-Ablauf mit PKCE und Nonce aus und validiert das zurückgegebene ID-Token.

TsgcHTTP_OIDC_Client

Erweitert den OAuth2-Client um die Identitätsschicht von OpenID Connect: Discovery, standardmäßig PKCE und Nonce, ID-Token-Validierung gegen die Signaturschlüssel des Providers und den Userinfo-Endpunkt.

Komponentenklasse

TsgcHTTP_OIDC_Client (Unit sgcAuth_OIDC_Client)

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Enterprise

Issuer setzen, Anmeldung starten

Setzen Sie OIDCOptions.Issuer und die Client-Anmeldedaten, rufen Sie Start auf und lesen Sie die validierten Claims in OnOIDCIDToken. Die Discovery läuft automatisch, wenn die Endpunkte nicht gesetzt sind.

uses
  sgcAuth_OIDC_Client;

// OIDC is a form field: OIDC: TsgcHTTP_OIDC_Client;
procedure TForm1.SignIn;
begin
  OIDC := TsgcHTTP_OIDC_Client.Create(nil);
  OIDC.OnOIDCIDToken := OnOIDCIDTokenEvent;

  OIDC.OIDCOptions.Issuer := 'https://accounts.google.com';
  OIDC.OAuth2Options.ClientId := 'your-client-id';
  OIDC.OAuth2Options.ClientSecret := 'your-client-secret';
  OIDC.AuthorizationServerOptions.Scope.Clear;
  OIDC.AuthorizationServerOptions.Scope.Add('openid');
  OIDC.AuthorizationServerOptions.Scope.Add('profile');
  OIDC.AuthorizationServerOptions.Scope.Add('email');

  OIDC.LocalServerOptions.IP := '127.0.0.1';
  OIDC.LocalServerOptions.Port := 8080;
  OIDC.LocalServerOptions.RedirectURL := 'http://127.0.0.1:8080/';

  // discovery, then the browser sign in with PKCE and nonce
  OIDC.Start;
end;

procedure TForm1.OnOIDCIDTokenEvent(Sender: TObject; const aClaims: string;
  aValid: Boolean; const aError: string);
begin
  if aValid then
    Memo1.Lines.Text := aClaims // JSON with sub, email, name...
  else
    ShowMessage(aError);
end;
// uses: sgcAuth_OIDC_Client
TsgcHTTP_OIDC_Client *OIDC = new TsgcHTTP_OIDC_Client(this);
OIDC->OnOIDCIDToken = OnOIDCIDTokenEvent;

OIDC->OIDCOptions->Issuer = "https://accounts.google.com";
OIDC->OAuth2Options->ClientId = "your-client-id";
OIDC->OAuth2Options->ClientSecret = "your-client-secret";
OIDC->AuthorizationServerOptions->Scope->Clear();
OIDC->AuthorizationServerOptions->Scope->Add("openid");
OIDC->AuthorizationServerOptions->Scope->Add("profile");
OIDC->AuthorizationServerOptions->Scope->Add("email");

OIDC->LocalServerOptions->IP = "127.0.0.1";
OIDC->LocalServerOptions->Port = 8080;
OIDC->LocalServerOptions->RedirectURL = "http://127.0.0.1:8080/";

OIDC->Start();

Was steckt drin

Alles, was der OAuth2-Client bietet, plus die Prüfungen, die aus einem Access Token eine vertrauenswürdige Identität machen.

Discovery

Discover liest die Provider-Konfiguration von OIDCOptions.Issuer und füllt die Autorisierungs- und Token-URLs, JWKSURI, UserInfoEndpoint und EndSessionEndpoint. Das rohe JSON bleibt in DiscoveryDocument erhalten.

PKCE und Nonce standardmäßig aktiv

OIDCOptions.UsePKCE ist von Haus aus aktiviert, und jede Anmeldung sendet eine frische Nonce, die das ID-Token widerspiegeln muss, sodass ein abgefangener Code oder ein wiederholtes Token nutzlos ist.

Strikte ID-Token-Validierung

Signatur, Issuer, Audience, Ablaufzeit (mit ClockSkew) und Nonce werden geprüft. Nur RS256, RS384, RS512, ES256 und ES384 werden akzeptiert, none und die HS-Algorithmen werden stets abgelehnt. Ergebnisse in IDToken, IDTokenClaims und IDTokenValid.

Schlüsselrotation inklusive

TsgcOIDCJWKS ist ein threadsicherer Cache der Signaturschlüssel des Providers. Ein Token mit unbekannter Key-ID löst einen neuen Download aus, begrenzt durch RefetchInterval, sodass eine Schlüsselrotation keinen Neustart erfordert.

Serverseitige Validierung

sgcOIDC_ValidateIDToken validiert die Bearer-Token, die Ihre REST-API oder Ihr WebSocket-Server erhält, gegen denselben JWKS-Cache. OIDCOptions.AllowedTenants beschränkt Multi-Tenant-Entra-ID-Apps auf die Organisationen, die Sie zulassen.

Userinfo und der OAuth2-Werkzeugkasten

GetUserInfo liefert das Profil-JSON. Loopback-Redirect-Server, Refresh Token, DPoP, Device Code, Widerruf und Introspection stammen aus TsgcHTTP_OAuth2_Client.

Spezifikationen und 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_OIDC_Client Vollständige Eigenschaften-, Methoden- und Ereignisreferenz für diese Komponente.
Demo-Projekt — Demos\26.Authentication\04.OpenID_Connect Discovery, Browser-Anmeldung, validierte Claims, Userinfo und ein eigenständiger JWT-Validator. 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.
Blog: Delphi-Login mit Passkeys, SAML SSO, LDAP und TOTP 2FA Wie die sechs Authentifizierungskomponenten in einer Delphi-Anwendung zusammenspielen.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Bereit für die Anmeldung mit OpenID Connect?

Laden Sie die kostenlose Testversion herunter und lassen Sie Ihre Delphi-Benutzer sich mit dem Identity Provider anmelden, dem sie bereits vertrauen.