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 :
- 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.
- 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.
- 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.