Diese Komponente bietet die OAuth2-Protokollimplementierung in serverseitigen Komponenten.
Diese Komponente bietet die OAuth2-Protokollimplementierung in serverseitigen Komponenten.
Die Server-Komponenten haben eine Eigenschaft namens Authorization.OAuth.OAuth2, der Sie eine Instanz von TsgcHTTP_OAuth2_Server zuweisen können. Wenn also Authentication aktiviert ist und die OAuth2-Eigenschaft an die OAuth2-Server-Komponente angehängt ist, benötigen die WebSocket- und HTTP-Requests ein Bearer-Token, um verarbeitet zu werden; andernfalls wird die Verbindung automatisch geschlossen.
OAuth2 := TsgcHTTP_OAuth2_Server.Create(nil);
Server.Authentication.Enabled := True;
Server.Authentication.OAuth.OAuth2 := OAuth2;
Der Server unterstützt die folgenden Autorisierungstypen:
Der Autorisierungstyp kann bei der Registrierung der App angepasst werden. Standardmäßig werden alle Autorisierungstypen unterstützt.
Standardmäßig ist die Komponente mit den folgenden Endpunkten konfiguriert, um Autorisierungs- und Token-Anfragen zu behandeln
Authorization: /sgc/oauth2/auth
Token: /sgc/oauth2/token
Revocation: /sgc/oauth2/revoke
Introspection: /sgc/oauth2/introspect
Device Authorization: /sgc/oauth2/device
Device Verification: /sgc/oauth2/device/verify
Wenn der Server also auf Port 443 lauscht und die Domain www.esegece.com ist, sind die EndPoints:
Authorization: https://www.esegece.com/sgc/oauth2/auth
Token: https://www.esegece.com/sgc/oauth2/token
Revocation: https://www.esegece.com/sgc/oauth2/revoke
Introspection: https://www.esegece.com/sgc/oauth2/introspect
Device Authorization: https://www.esegece.com/sgc/oauth2/device
Device Verification: https://www.esegece.com/sgc/oauth2/device/verify
Die Endpunkte können in der Eigenschaft OAuth2Options konfiguriert werden.
Standardmäßig ist PKCE (eine Erweiterung des Authorization-Code-Flows zur Verhinderung von CSRF- und Authorization-Code-Injection-Angriffen) aktiviert.
Bevor Sie den OAuth2-Prozess starten können, müssen Sie registrieren, welche Apps verfügbar sein werden; dies geschieht über die Apps-Eigenschaft der OAuth2-Server-Komponente.
Verwenden Sie Apps.AddApp, um eine neue Anwendung zum OAuth2-Server hinzuzufügen; Sie müssen die folgenden Parameter setzen:
Optional können Sie die folgenden Parameter festlegen:
Verwenden Sie Apps.RemoveApp, um eine vorhandene App zu löschen.
Wenn der Server neu gestartet wurde, während einige Tokens ausgegeben waren, können Sie diese Tokens mit der Methode AddToken wiederherstellen, bevor Sie den OAuth2-Server starten und nachdem Sie die Apps registriert haben
Entfernt ein bereits ausgegebenes Token.
Die Eigenschaft OAuth2Options ermöglicht die Konfiguration der Server-Endpunkte und optionaler Funktionen.
Token-Widerruf gemäß RFC 7009. Wenn aktiviert, können Clients zuvor ausgestellte Access- oder Refresh-Tokens widerrufen.
Token-Introspektion gemäß RFC 7662. Wenn aktiviert, können Resource Server den Autorisierungsserver abfragen, um den aktiven Zustand und die Metadaten eines Tokens zu ermitteln.
Device Authorization Grant gemäß RFC 8628. Wenn aktiviert, können Geräte mit eingeschränkter Eingabe eine Autorisierung anfordern, indem der Benutzer die Autorisierung auf einem Zweitgerät vornimmt.