184 votes

Quelle est la différence entre les flux de travail Code d'autorisation OAuth et Implicite ? Quand utiliser chacun d'eux ?

OAuth 2.0 a plusieurs flux de travail. J'ai quelques questions concernant les deux.

  1. Flux de code d'autorisation - L'utilisateur se connecte à partir de l'application cliente, le serveur d'autorisation renvoie un code d'autorisation à l'application. L'application échange alors le code d'autorisation contre un jeton d'accès.
  2. Flux de subventions implicites - L'utilisateur se connecte à partir de l'application cliente, le serveur d'autorisation émet un jeton d'accès à l'application cliente directement.

Quelle est la différence entre les deux approches en termes de sécurité ? Laquelle est la plus sûre et pourquoi ?

Je ne vois pas pourquoi une étape supplémentaire (échange du code d'autorisation contre un jeton) est ajoutée dans un flux de travail alors que le serveur peut émettre directement un jeton d'accès.

Différents sites Web affirment que le flux de code d'autorisation est utilisé lorsque l'application du client est en mesure de conserver les informations d'identification en toute sécurité. Pourquoi ?

16voto

Bobo Zohdy Points 1771

La différence entre les deux est que :

  1. Dans le flux implicite, le jeton est renvoyé directement via l'URL de redirection avec le signe "#" et ceci est utilisé principalement dans les clients javascript ou les applications mobiles qui n'ont pas de serveur propre, et le client n'a pas besoin de fournir son secret dans certaines implémentations.

  2. Dans le flux de code d'autorisation, le code est renvoyé avec " ?" pour être lisible par le côté serveur, puis le côté serveur doit fournir le secret du client, cette fois à l'url du jeton pour obtenir le jeton en tant qu'objet json du serveur d'autorisation. Il est utilisé dans le cas où vous avez un serveur d'application qui peut gérer cela et stocker le jeton de l'utilisateur avec son profil sur son propre système, et principalement utilisé pour les applications mobiles communes.

donc cela dépend de la nature de votre application client, lequel est le plus sûr "Code d'autorisation" car il demande le secret sur le client et le jeton peut être envoyé entre le serveur d'autorisation et l'application client sur une connexion très sécurisée, et le fournisseur d'autorisation peut restreindre certains clients à utiliser uniquement le "Code d'autorisation" et interdire l'implicite.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X