OAuth2 met Delphi WebSockets

· Functies

OAuth2 stelt applicaties van derden in staat om via het HTTP-protocol toegang te krijgen tot beperkte resources. RFC 6749 beschrijft de OAuth2-specificatie. Er zijn 4 rollen:


OAuth2-flow

 (A) De client vraagt autorisatie aan bij de resource owner. De autorisatie-aanvraag kan direct aan de resource owner worden gedaan (zoals getoond), of bij voorkeur indirect via de authorization server als tussenpersoon.

(B) De client ontvangt een authorization grant, een credential die de autorisatie van de resource owner vertegenwoordigt, uitgedrukt met een van de vier in deze specificatie gedefinieerde grant-types of via een extension-grant-type. Het authorization-grant-type hangt af van de methode die de client gebruikt om autorisatie aan te vragen en van de types die de authorization server ondersteunt.

(C) De client vraagt een access token aan door te authenticeren bij de authorization server en de authorization grant te presenteren.

(D) De authorization server authenticeert de client en valideert de authorization grant; is deze geldig, dan geeft hij een access token uit.

(E) De client vraagt de beschermde resource aan bij de resource server en authenticeert door het access token te presenteren.

(F) De resource server valideert het access token en, indien geldig, handelt de aanvraag af.


OAuth2 met WebSockets

sgcWebSockets ondersteunt Bearer-tokens in de WebSocket-clientcomponent. Je hoeft alleen Authentication en de Token-property in TsgcWebSocketClient in te schakelen en in te stellen welk token wordt verzonden wanneer de client verbinding maakt met de server.

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 de volgende versie, sgcWebSockets 4.3.4, wordt een nieuwe component voor OAuth2 uitgebracht die OAuth2-credentials automatisch kan ophalen.