OAuth2 Delphi WebSockets

· Funzionalità

OAuth2 permette ad applicazioni di terze parti di accedere a risorse protette tramite il protocollo HTTP. RFC 6749 descrive la specifica OAuth2. Ci sono 4 ruoli:


Flusso OAuth2

 (A) Il client richiede l'autorizzazione al resource owner. La richiesta di autorizzazione può essere fatta direttamente al resource owner (come mostrato) oppure, preferibilmente, indirettamente tramite l'authorization server come intermediario.

(B) Il client riceve un authorization grant, ovvero una credenziale che rappresenta l'autorizzazione del resource owner, espressa usando uno dei quattro grant type definiti in questa specifica oppure tramite un grant type di estensione. Il tipo di authorization grant dipende dal metodo usato dal client per richiedere l'autorizzazione e dai tipi supportati dall' authorization server.

(C) Il client richiede un access token autenticandosi presso l' authorization server e presentando l'authorization grant.

(D) L'authorization server autentica il client e valida l'authorization grant; se è valido, emette un access token.

(E) Il client richiede la risorsa protetta al resource server e si autentica presentando l'access token.

(F) Il resource server valida l'access token e, se valido, serve la richiesta.


OAuth2 WebSockets

sgcWebSockets supporta i Bearer token nel componente client WebSocket. Devi solo abilitare le proprietà Authentication e Token in TsgcWebSocketClient e impostare quale token sarà inviato quando il client si connette al 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>'; 

 Nella prossima versione, sgcWebSockets 4.3.4, sarà rilasciato un nuovo componente per OAuth2 in grado di ottenere automaticamente le credenziali OAuth2.