OAuth2 Delphi WebSockets

· Fonctionnalités

OAuth2 permet aux applications tierces d'accéder à des ressources restreintes via le protocole HTTP. La RFC 6749 couvre la spécification OAuth2. Il y a 4 rôles :


Flux OAuth2

 (A) Le client demande l'autorisation au propriétaire de la ressource. La requête d'autorisation peut être faite directement au propriétaire de la ressource (comme illustré), ou de préférence indirectement via le serveur d'autorisation comme intermédiaire.

(B) Le client reçoit un grant d'autorisation, qui est un identifiant représentant l'autorisation du propriétaire de la ressource, exprimé via l'un des quatre types de grant définis dans cette spécification ou via un type de grant d'extension. Le type de grant d'autorisation dépend de la méthode utilisée par le client pour demander l'autorisation et des types pris en charge par le serveur d'autorisation.

(C) Le client demande un jeton d'accès en s'authentifiant auprès du serveur d'autorisation et en présentant le grant d'autorisation.

(D) Le serveur d'autorisation authentifie le client et valide le grant d'autorisation, et s'il est valide, émet un jeton d'accès.

(E) Le client demande la ressource protégée au serveur de ressources et s'authentifie en présentant le jeton d'accès.

(F) Le serveur de ressources valide le jeton d'accès, et s'il est valide, sert la requête.


OAuth2 WebSockets

sgcWebSockets prend en charge les jetons Bearer dans le composant client WebSocket. Tu dois uniquement activer Authentication et la propriété Token dans TsgcWebSocketClient et définir le jeton qui sera envoyé lorsque le client se connecte au serveur.

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>';

 Dans la prochaine version, sgcWebSockets 4.3.4, un nouveau composant pour OAuth2 sera publié et pourra obtenir automatiquement les identifiants OAuth2.