215 votes

Qu'est-ce que OAuth (Open Authorization) ?

Qu'est-ce que OAuth (Open Authorization) ?

J'ai glané quelques informations auprès de

Mais je veux apprendre et en savoir plus. Je cherche des informations sur le cycle de vie. Pourquoi la plupart des réseaux sociaux reposent-ils sur ce protocole ouvert ?

Deviendra-t-elle de facto dans un avenir proche avec les différentes technologies (par exemple ASP.NET) ?

336voto

André Caron Points 19543

Qu'est-ce que OAuth (Open Authorization) ?

OAuth permet de notifier un fournisseur de ressources (par exemple, Facebook) que le propriétaire des ressources (par exemple vous) accorde la permission à un tierce partie (par exemple une application Facebook) l'accès à leur information (par exemple, la liste de vos amis).

Si vous l'aviez lu aussi simplement, je comprendrais votre confusion. Prenons donc un exemple concret : rejoindre un énième réseau social !

Supposons que vous ayez un compte GMail existant. Vous décidez de vous inscrire sur LinkedIn. L'ajout de tous vos beaucoup, beaucoup amis manuellement est fastidieux et source d'erreurs. Vous risquez de vous lasser à mi-chemin ou d'insérer des fautes de frappe dans leur adresse électronique d'invitation. Vous pourriez donc être tenté de ne pas créer de compte après tout.

Face à cette situation, LinkedIn a eu la bonne idée d'écrire un programme qui ajoute automatiquement votre liste d'amis, car les ordinateurs sont bien plus efficaces pour accomplir des tâches fastidieuses et sujettes à erreurs. Puisqu'il est maintenant si facile de rejoindre le réseau, il y a pas du tout vous refuseriez une telle offre, n'est-ce pas ?

En l'absence d'une API pour l'échange de cette liste de contacts, vous devrez donner à LinkedIn le nom d'utilisateur et le mot de passe de votre compte GMail, ce qui revient à dire que vous n'avez pas le droit d'accéder à votre compte GMail. leur donner trop de pouvoir .

C'est là qu'intervient OAuth. Si votre messagerie GMail prend en charge le protocole OAuth, LinkedIn peut vous demander de l'autoriser à accéder à votre liste de contacts GMail.

OAuth permet :

  1. Différents niveaux d'accès : lecture seule VS lecture-écriture. Cela vous permet d'accorder un accès à votre liste d'utilisateurs ou un accès bidirectionnel pour synchroniser automatiquement vos nouveaux amis LinkedIn à vos contacts GMail.
  2. Granularité de l'accès : vous pouvez décider d'accorder l'accès uniquement à vos informations de contact (nom d'utilisateur, e-mail, date de naissance, etc.) ou à l'ensemble de votre liste d'amis, à votre agenda, etc.
  3. Il vous permet de gérer l'accès à partir de l'application du fournisseur de ressources. Si l'application tierce ne fournit pas de mécanisme d'annulation de l'accès, vous serez coincé avec l'accès à vos informations. Avec OAuth, il est possible de révoquer l'accès à tout moment.

Deviendra-t-elle une norme de facto dans un avenir proche ?

Bien qu'OAuth constitue une avancée significative, il ne résout pas les problèmes si les gens ne l'utilisent pas correctement. Par exemple, si un fournisseur de ressources ne donne qu'un seul niveau d'accès en lecture-écriture à toutes vos ressources à la fois et ne fournit pas de mécanisme pour gérer l'accès, alors il n'a aucun intérêt. En d'autres termes, OAuth est un cadre permettant de fournir une fonctionnalité d'autorisation et pas seulement d'authentification.

En pratique, il correspond très bien au modèle de réseau social. Il est particulièrement populaire pour les réseaux sociaux qui souhaitent autoriser les "plugins" tiers. Il s'agit d'un domaine où l'accès aux ressources est intrinsèquement nécessaire, mais aussi intrinsèquement peu fiable (c'est-à-dire que vous n'avez que peu ou pas de contrôle de qualité sur ces applications).

Je n'ai pas vu autant d'autres utilisations dans la nature. Je veux dire, je ne connais pas de société de conseil financier en ligne qui accède automatiquement à vos données bancaires, bien que pourrait techniquement être utilisé de cette façon.

257voto

Balman Rawat Points 3762

Qu'est-ce que oAuth ?

OAuth est tout simplement un protocole d'autorisation sécurisé qui traite de l'autorisation d'une application tierce à accéder aux données de l'utilisateur sans exposer son mot de passe. Par exemple, la connexion avec fb, gPlus, twitter dans de nombreux sites web tous fonctionnent sous ce protocole.

Parties concernées

Le protocole devient plus facile lorsque vous connaissez les parties concernées. Fondamentalement, il y a trois parties impliquées : le fournisseur d'oAuth, le client d'oAuth et le propriétaire.

  • Client oAuth (Application qui veut accéder à votre créance)
  • Fournisseur oAuth (ex. facebook, twitter...)
  • Propriétaire (la personne avec un compte facebook, twitter )

Comment ça marche ?

J'ai supposé un scénario où un site web (stackoverflow) a besoin d'ajouter la fonction de connexion avec facebook. Ainsi, facebook est le fournisseur d'oAuth et stackoverflow est le client d'oAuth.

  1. Cette étape est effectuée par le développeur de l'application . Au tout début, facebook (fournisseur d'oAuth) n'a aucune idée de l'existence de stackoverflow (client d'oAuth) car il n'existe aucun lien entre eux. La toute première étape consiste donc à enregistrer stackoverflow auprès de Facebook. site des développeurs . Cette opération est effectuée manuellement, les développeurs devant fournir des informations sur l'application à Facebook, comme le nom de l'application, le site Web, le logo et l'URL de redirection (élément important). Ensuite, stackoverflow s'est enregistré avec succès, a obtenu l'Id client, le secret client, etc. de facebook et est opérationnel avec OAUTH . enter image description here

    2. Maintenant, lorsque l'utilisateur de stackoverflow clique sur le bouton "login with fb". . Stackoverflow demande à facebook avec ClientId (fb l'utilise pour reconnaître le client) et redirectUrl (fb retournera à cette url après le succès). Ainsi l'utilisateur est redirigé vers la page de connexion de facebook. C'est la meilleure partie L'utilisateur (propriétaire) ne donne pas son identifiant facebook à stackoverflow.

enter image description here

enter image description here

  1. Après que Owner ait autorisé Stackoverflow à accéder aux informations . Ensuite, Facebook redirige vers stackoverflow, avec code d'autorisation en utilisant le redirectUrl fourni à l'étape 2.
  2. Ensuite, Stackoverflow entre en contact avec facebook en même temps que l'information obtenue. code d'autorisation pour s'assurer que tout va bien.
  3. Alors seulement, facebook donnera jeton d'accès à stackoverflow. Puis jeton d'accès est utilisé par stackoverflow pour récupérer les informations du propriétaire sans utiliser de mot de passe. C'est la raison d'être de oAuth, où les informations d'identification réelles ne sont jamais exposées à des applications tierces.

Pour en savoir plus :

Vidéo rapide

Lien internet

14voto

ameer Points 937

En termes simples, OAuth est un moyen pour les applications d'obtenir des informations d'identification sur vos informations sans obtenir directement vos informations de connexion à un site web. Par exemple, si vous écrivez une application sur votre propre site Web et que vous souhaitez qu'elle utilise les données du compte Facebook d'un utilisateur, vous pouvez utiliser OAuth pour obtenir un jeton via une url de rappel, puis utiliser ce jeton pour appeler l'API de Facebook afin d'obtenir ses données d'utilisation jusqu'à l'expiration du jeton. Les sites web s'appuient sur cette méthode car elle permet aux programmeurs d'accéder à leurs données sans que l'utilisateur ait à divulguer directement ses informations et à diffuser ses identifiants en ligne, tout en assurant un certain niveau de protection des données. Cette méthode deviendra-t-elle la méthode d'autorisation de facto ? Peut-être, car elle a récemment bénéficié d'un soutien important de la part de Twitter, Facebook et autres, où d'autres programmeurs souhaitent créer des applications autour des données des utilisateurs.

13voto

premraj Points 120

OAuth ( O stylo Auth orisation) est une norme ouverte pour le protocole d'octroi/délivrance d'accès. Il est utilisé comme un moyen pour les utilisateurs d'Internet d'accorder aux sites Web ou aux applications l'accès à leurs informations sur d'autres sites Web, mais sans leur donner les mots de passe. Il ne traite pas de authentification .

Ou

OAuth 2.0 est un protocole qui permet à un utilisateur d'accorder un accès limité à ses ressources sur un site, à un autre site, sans avoir à exposer ses informations d'identification.

  • Analogie 1 : De nos jours, de nombreuses voitures de luxe sont équipées d'une clé de valet. Il s'agit d'une clé spéciale que vous donnez au gardien du parking et qui, contrairement à votre clé ordinaire, ne permet pas à la voiture de rouler sur plus d'un kilomètre ou deux. Certaines clés de voiturier ne permettent pas d'ouvrir le coffre, tandis que d'autres bloquent l'accès au carnet d'adresses de votre téléphone portable. Quelles que soient les restrictions imposées par la clé valet, l'idée est très intelligente. Vous donnez à quelqu'un un accès limité à votre voiture avec une clé spéciale, tout en utilisant votre clé ordinaire pour tout déverrouiller. src de auth0

  • Analogie 2 : Supposons que nous voulions remplir un formulaire de demande pour un compte bancaire. Ici, Oauth fonctionne comme, au lieu de remplir le formulaire par le demandeur, la banque peut remplir le formulaire en utilisant Adhaar ou le passeport.

    Ici, les trois entités suivantes sont impliquées :

    1. Demandeur, c'est-à-dire propriétaire
    2. Le compte bancaire est un client OAuth, ils ont besoin d'informations.
    3. Adhaar/Passeport ID est un fournisseur d'OAuth

9voto

randomness Points 126

Oauth gagne définitivement du terrain et devient également populaire parmi les API d'entreprise. Dans le monde des applications et des données, les entreprises exposent de plus en plus leurs API au monde extérieur, à l'instar de Google, Facebook et Twitter. Avec ce développement, un triangle d'authentification à 3 voies se forme

1) Fournisseur d'API - Toute entreprise qui expose ses actifs par le biais d'API, par exemple Amazon, Target, etc. 2) Développeur - Celui qui construit des applications mobiles ou autres sur ces API. 3) L'utilisateur final - L'utilisateur final du service fourni par le fournisseur d'API, par exemple les utilisateurs enregistrés/ invités d'Amazon.

Il s'agit maintenant d'une situation liée à la sécurité (j'énumère quelques-unes de ces complexités). 1) En tant qu'utilisateur final, vous souhaitez autoriser le développeur à accéder aux API en votre nom. 2) Le fournisseur d'API doit authentifier le développeur et l'utilisateur final. 3) L'utilisateur final doit pouvoir accorder et révoquer les autorisations pour le consentement qu'il a donné. 4) Le développeur peut avoir un niveau de confiance variable avec le fournisseur d'API, dans lequel le niveau des autorisations qui lui sont accordées est différent.

Oauth est un cadre d'autorisation qui tente de résoudre le problème susmentionné de manière standard. Avec la proéminence des API et des applications, ce problème va devenir de plus en plus pertinent et toute norme qui tente de le résoudre - qu'il s'agisse d'Oauth ou d'une autre - sera un sujet de préoccupation pour les fournisseurs/développeurs d'API et même pour les utilisateurs finaux !

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