En quoi consiste exactement OAuth (Open Authorization)?
OAuth permet de notifier à un fournisseur de ressources (par exemple Facebook) que le propriétaire de la ressource (par exemple vous) autorise un tiers (par exemple une application Facebook) à accéder à ses informations (par exemple la liste de vos amis).
Si vous le lisez clairement, je comprendrais votre confusion. Alors allons-y avec un exemple concret: rejoindre un autre réseau social!
Supposons que vous ayez un compte GMail existant. Vous décidez de rejoindre LinkedIn. Ajouter tous vos nombreux amis manuellement est fastidieux et sujet aux erreurs. Vous pourriez en avoir marre à mi-chemin ou insérer des fautes de frappe dans leur adresse e-mail pour l'invitation. Vous pourriez donc être tenté de ne pas créer de compte après tout.
Face à cette situation, LinkedIn a la bonne idée (TM) d'écrire un programme qui ajoute automatiquement votre liste d'amis, car les ordinateurs sont beaucoup plus efficaces et efficaces pour les tâches fastidieuses et sujettes aux erreurs. Étant donné que rejoindre le réseau est maintenant si facile, il n'y a aucun moyen de refuser une telle offre, n'est-ce pas?
Sans une API pour échanger cette liste de contacts, vous devrez donner à LinkedIn le nom d'utilisateur et le mot de passe à votre compte GMail, leur donnant ainsi trop de pouvoir .
C'est là qu'intervient OAuth. Si votre GMail prend en charge le protocole OAuth, alors LinkedIn peut vous demander de les autoriser à accéder à votre liste de contacts GMail.
OAuth permet:
- Différents niveaux d'accès: lecture seule VS lecture-écriture. Cela vous permet d'accorder l'accès à votre liste d'utilisateurs ou un accès bidirectionnel pour synchroniser automatiquement vos nouveaux amis LinkedIn avec vos contacts GMail.
- Granularité d'accès: vous pouvez décider de n'accorder l'accès qu'à vos coordonnées (nom d'utilisateur, e-mail, date de naissance, etc.) ou à toute votre liste d'amis, calendrier et autres.
- 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 pour annuler l'accès, vous seriez coincé avec eux ayant accès à vos informations. Avec OAuth, il est possible de révoquer l'accès à tout moment.
Deviendra-t-elle de facto (standard?) Dans un avenir proche?
Eh bien, bien que OAuth soit un pas en avant significatif, 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 de gestion de l'accès, cela ne sert à rien. En d'autres termes, OAuth est un cadre pour fournir des fonctionnalités d'autorisation et pas seulement une 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 et également intrinsèquement peu fiable (c'est-à-dire que vous avez peu ou pas de contrôle de qualité sur ces applications).
Je n'ai pas vu tant d'autres utilisations à l'état sauvage. Je veux dire, je ne connais pas de cabinet de conseil financier en ligne qui accèdera automatiquement à vos relevés bancaires, bien qu'il puisse techniquement être utilisé de cette façon.
OAuth est simplement un protocole d'autorisation sécurisé qui traite de l'autorisation d'une application tierce d'accéder aux données de l'utilisateur sans exposer son mot de passe. par exemple. (Connectez-vous avec fb, gPlus, twitter dans de nombreux sites Web ..) fonctionnent tous sous ce protocole.
Le protocole devient plus facile lorsque vous connaissez les parties impliquées. Fondamentalement, trois parties sont impliquées: le fournisseur oAuth, le client oAuth et le propriétaire.
J'ai supposé un scénario où un site Web (stackoverflow) doit ajouter une connexion avec la fonctionnalité Facebook. Ainsi, Facebook est le fournisseur oAuth et le stackoverflow est le client oAuth.
Cette étape est effectuée par le développeur de l'application . Au tout début, Facebook (oAuth Provider) n'a aucune idée du stackoverflow (oAuth Client) car il n'y a aucun lien entre eux. La toute première étape consiste donc à enregistrer stackoverflow sur le site des développeurs Facebook . Cela se fait manuellement où les développeurs doivent donner les informations de l'application à Facebook comme le nom de l'application, le site Web, le logo, l'URL de redirection (important). Ensuite, stackoverflow est enregistré avec succès, a obtenu l'identifiant client, le secret client, etc. de Facebook et est opérationnel avec OAUTH .
2. Maintenant, lorsque l'utilisateur de stackoverflow clique sur la connexion avec le bouton fb . Stackoverflow demande Facebook avec ClientId (fb l'utilise pour reconnaître le client) et redirectUrl (fb reviendra à cette URL après le succès). Ainsi, l'utilisateur est redirigé vers la page de connexion Facebook. C'est la meilleure partie que l' utilisateur (propriétaire) ne donne pas ses informations d'identification Facebook à stackoverflow.
Pour plus:
Vidéo rapide
lien Web
la source
Autrement dit, OAuth est un moyen pour les applications d'obtenir des informations d'identification sur vos informations sans obtenir directement vos informations de connexion utilisateur sur un site Web. Par exemple, si vous écrivez une application sur votre propre site Web et 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 Facebook pour obtenir leur utiliser les données jusqu'à l'expiration du jeton. Les sites Web en dépendent car il permet aux programmeurs d'accéder à leurs données sans que l'utilisateur n'ait à divulguer directement leurs informations et à diffuser leurs informations d'identification en ligne, tout en offrant un niveau de protection aux données. Deviendra-t-elle la méthode d'autorisation de facto? Peut-être, il a gagné beaucoup de soutien récemment de Twitter, Facebook,
la source
Oauth prend définitivement de l'ampleur 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 les API au monde extérieur conformément à Google, Facebook, Twitter. Avec ce développement, un triangle d'authentification à 3 voies se forme
1) Fournisseur d'API - Toute entreprise qui expose ses actifs par API, par exemple Amazon, Target, etc. 2) Développeur - Celui qui crée des applications mobiles / autres sur ces API 3) L'utilisateur final - L'utilisateur final du service fourni par le - disent les utilisateurs enregistrés / invités d'Amazon
Maintenant, cela développe une situation liée à la sécurité - (je répertorie quelques-unes de ces complexités) 1) Vous, en tant qu'utilisateur final, 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 devrait 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, en dont le niveau d'autorisations qui lui est accordé est différent
Oauth est un cadre d'autorisation qui essaie de résoudre le problème mentionné ci-dessus d'une manière standard. Avec la proéminence des API et des applications, ce problème deviendra de plus en plus pertinent et toute norme qui tentera de le résoudre - que ce soit ou n'importe quel autre - sera quelque chose dont il faudra se soucier en tant que fournisseur / développeur d'API et même utilisateur final!
la source
OAuth ( O pen Auth orization) est une norme ouverte pour le protocole d'octroi / de suppression d'accès. Il était utilisé comme 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 l' 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 nombreuses voitures de luxe sont livrées avec une clé de voiturier. C'est une clé spéciale que vous donnez au préposé au stationnement et contrairement à votre clé habituelle, elle ne permettra pas à la voiture de parcourir plus d'un mile ou deux. Certaines clés de voiturier n'ouvriront pas le coffre, tandis que d'autres bloqueront l'accès à votre carnet d'adresses de téléphone portable à bord. Quelles que soient les restrictions imposées par la clé de voiturier, 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é habituelle pour tout déverrouiller. src de auth0
Analogie 2: Supposons que nous voulons remplir un formulaire de demande de compte bancaire. Ici, Oauth fonctionne car, au lieu de remplir le formulaire par le demandeur, la banque peut remplir le formulaire en utilisant Adhaar ou un passeport.
Ici, les trois entités suivantes sont impliquées:
la source
OAuth consiste à déléguer l'autorisation (choisir quelqu'un qui peut faire l'autorisation pour vous). Notez que l'authentification et l'autorisation sont des choses différentes. OAuth est une autorisation (contrôle d'accès), et si vous souhaitez également implémenter l'authentification (vérification d'ID), le protocole OpenID peut être utilisé par-dessus OAuth.
Toutes les grandes entreprises comme Facebook, Google, Github, ... utilisent aujourd'hui ce type d'authentification / autorisation. Par exemple, je viens de me connecter sur ce site en utilisant mon compte Google, cela signifie que Stackoverflow ne connaît pas mon mot de passe, il reçoit l'allocation de Google où mon mot de passe (haché évidemment) est enregistré. Cela donne beaucoup d'avantages, l'un d'eux est; Dans un avenir proche, vous n'aurez pas à créer plusieurs comptes sur chaque site Web. Un site Web (auquel vous faites le plus confiance) peut être utilisé pour vous connecter à tous les autres sites Web. Vous n'aurez donc qu'à vous souvenir d'un seul mot de passe.
la source
Source: fournisseurs de services OAuth1
la source
OAuth est une norme d'autorisation ouverte, couramment utilisée comme moyen pour les utilisateurs Internet de se connecter à des sites Web tiers à l'aide de leurs comptes Microsoft, Google, Facebook ou Twitter sans exposer leur mot de passe.
la source
OAuth est un protocole utilisé par le propriétaire de la ressource (facebook, google, tweeter, microsoft live et ainsi de suite) pour fournir les informations nécessaires ou pour fournir une autorisation de réussite d'écriture sur un système tiers (votre site par exemple). Très probablement sans protocole OAuth, les informations d'identification devraient être disponibles pour les systèmes tiers, ce qui constituerait un moyen de communication inapproprié entre ces systèmes.
la source