OAuth2 ermöglicht es Drittanbieter-Anwendungen, über das HTTP-Protokoll auf eingeschränkte Ressourcen zuzugreifen. RFC 6749 deckt die OAuth2-Spezifikation ab. Es gibt 4 Rollen:
- Client
- Ressourcenbesitzer
- Autorisierungsserver
- Ressourcenserver
OAuth2 Flow
(A) Der Client fordert die Autorisierung vom Ressourcenbesitzer an. Die Autorisierungsanfrage kann entweder direkt an den Ressourcenbesitzer (wie gezeigt) oder bevorzugt indirekt über den Autorisierungsserver als Vermittler erfolgen.
(B) Der Client erhält eine Autorisierungsbewilligung (Authorization Grant). Diese stellt eine Berechtigung des Ressourcenbesitzers dar und wird mit einem der vier in dieser Spezifikation definierten Grant-Typen oder einem Extension-Grant-Typ ausgedrückt. Der Grant-Typ hängt von der Methode ab, mit der der Client die Autorisierung anfordert, sowie von den vom Autorisierungsserver unterstützten Typen.(C) Der Client fordert ein Access Token an, indem er sich beim Autorisierungsserver authentifiziert und den Grant vorlegt.
(D) Der Autorisierungsserver authentifiziert den Client und validiert den Grant; ist er gültig, stellt er ein Access Token aus.
(E) Der Client fordert die geschützte Ressource beim Ressourcenserver an und authentifiziert sich durch Vorlage des Access Tokens.
(F) Der Ressourcenserver validiert das Access Token; ist es gültig, bedient er die Anfrage.

OAuth2 WebSockets
sgcWebSockets unterstützt Bearer-Tokens in der WebSocket-Client-Komponente. Du musst lediglich die Authentifizierung und die Token-Eigenschaft in TsgcWebSocketClient aktivieren und festlegen, welcher Token gesendet wird, wenn sich der Client mit dem Server verbindet.
Client := TsgcWebSocketClient.Create(nil); Client.Authentication.Enabled := True; Client.Authentication.Token.Enabled := True; Client.Authentication.Token.AuthName := 'Bearer'; Client.Authentication.Token.AuthToken := '<your token here>';
In der nächsten Version, sgcWebSockets 4.3.4, wird eine neue Komponente für OAuth2 veröffentlicht, die OAuth2-Anmeldedaten automatisch abrufen kann.
