Qu’est-ce que OAuth (Autorisation Ouverte) et Pourquoi est-ce Important ?

Les violations de données sont l’une des plus grandes menaces dans une génération en rapide évolution et à la pointe de la technologie. Une violation de données peut dévaster des entreprises, des réputations, et même des gouvernements. De plus, il suffit qu’un seul compte privilégié vulnérable soit compromis par des entités non autorisées pour que des données critiques soient « volées ». Le monde numérisé génère, partage, stocke plus de données, et les comptes numériques sont monnaie courante.

De nombreux services sur Internet sont intégrés et conçus pour interagir les uns avec les autres. Cependant, l’utilisation de comptes de service pour accéder à des applications et des sites Web implique la pratique peu sûre de stocker des identifiants privilégiés, principalement sans authentification à plusieurs facteurs (MFA), et expose des informations privées à des compromissions.

L’importance de la confidentialité et de la sécurité des données est incroyable. Par conséquent, des normes de sécurité ouvertes comme OAuth sécurisent les informations personnelles et privées lors du transfert de données entre tiers. La norme OAuth compilée par l’Internet Engineering Task Force (IETF) protège les propriétaires de ressources sur le web lors de l’utilisation de services tiers. Continuez à lire pour en savoir plus sur OAuth.

Qu’est-ce que OAuth ?

OAuth (Open Authorization) est un cadre standard ouvert qui permet l’accès par des tiers à des informations ou des actifs liés à l’utilisateur authentifié sur des serveurs et des services (comme des sites Web et des applications) sans partager leurs identifiants de connexion. Il fournit un accès délégué sécurisé aux ressources du serveur au nom d’un propriétaire de ressource en utilisant une authentification basée sur des jetons. Cependant, le protocole d’authentification vérifie l’identité de l’utilisateur en utilisant des mots de passe, téléphone ou identité biométrique et ne doit pas être confondu avec le protocole d’Open Authorization.

Contrairement aux protocoles d’authentification comme OpenID, OAuth autorise un accès limité aux ressources après une authentification réussie. Des entreprises telles que Facebook, Google, Amazon, Twitter, Paypal, Netflix et Microsoft permettent à leurs utilisateurs de partager des informations de compte avec des sites Web et applications tiers via OAuth.

La norme d’authentification et d’autorisation découplée OAuth protège les informations des utilisateurs en accordant l’accès aux ressources sans révéler l’identité ou les identifiants de l’utilisateur. Ainsi, les services tiers peuvent demander en nom d’un utilisateur sans accéder aux mots de passe et autres informations sensibles.

Le mécanisme OAuth suit un flux d’autorisation avec trois composants clés : le fournisseur, le propriétaire/utilisateur et le client/consommateur. Le fournisseur OAuth est le serveur d’autorisation et le moteur principal d’OAuth. Les serveurs de ressources (APIs comme Facebook ou Google) utilisent OAuth pour se connecter à un site web tiers ou à une application au nom et avec l’approbation d’un utilisateur. Le fournisseur donne au service client un jeton d’authentification d’accès pour l’autorisation à l’information hébergée par le serveur de ressources. L’Utilisateur possède les données/informations dans un serveur de ressources. La connexion de l’utilisateur confirme le partage d’informations. Le Client est le site web ou l’application qui nécessite l’accès aux informations ou aux ressources de l’utilisateur.

Il obtient l’accès au serveur de ressources avec un jeton d’accès. Enfin, le programme client nécessite une inscription auprès d’OAuth pour que l’autorisation puisse se poursuivre. Le processus complet d’OAuth nécessite plusieurs approbations et les trois composants pour une transaction/un accès autorisé.

OAuth 1.0

La sécurité des informations des utilisateurs est essentielle avec l’augmentation du partage, du stockage et de l’utilisation des données. Par conséquent, il est important d’intégrer des normes d’autorisation sécurisées dans les applications et les services web pour prévenir les violations de données. OAuth est reconnu comme la norme de partage d’informations la plus sécurisée pour les sites web et les API. La norme OAuth prend en charge plusieurs flux pour répondre à différents scénarios d’autorisation d’applications clientes et à différentes capacités de dispositifs. Elle prend en charge les applications serveur-à-serveur, les applications web, les applications mobiles, les sites web, les consoles ou les téléviseurs. 

Le protocole OAuth 1.0 a été publié en 2010 pour renverser l’absence de normes ouvertes pour la délégation d’accès aux API. Cependant, il a été lancé pour la première fois en 2007 comme méthode d’autorisation pour l’interface d’application Twitter. L’IETF a publié OAuth 2.0 deux ans plus tard comme un protocole d’autorisation amélioré et entièrement nouveau. Il se distingue de la première version par l’augmentation des flux OAuth, des jetons à courte durée de vie et l’incompatibilité avec OAuth 1.0.

OAuth 1.0 gérait la délégation avec un cadre basé sur des signatures numériques. Il était solide et sécurisé, si bien que des acteurs majeurs tels que Google et Twitter l’ont soutenu et adopté. Il nécessitait une implémentation cryptographique et une interopérabilité cryptographique, ce qui le rendait très sécurisé. Cependant, il est difficile pour les développeurs de l’implémenter sans une expérience adéquate en cryptographie et en gestion des clés.

OAuth est généralement un protocole de délégation qui fournit une permission et non un protocole d’authentification comme OpenID – une couche d’identité construite au-dessus du protocole OAuth 2.0. Bien que de nombreuses applications utilisent OAuth 2.0 pour l’authentification et l’autorisation, il est uniquement spécialisé pour l’autorisation déléguée.

Le cadre OAuth 2.0 

Le cadre OAuth 2.0 est le protocole standard de l’industrie pour l’autorisation. Une réécriture du protocole original Open Authorization fournit une solution plus complète pour les clients modernes web et non-web. Le cadre contient des spécifications qui sécurisent davantage les données des utilisateurs. Celles-ci incluent :

Expiration du Token

Les jetons OAuth sont généralement irrévocables et, dans la version 1.0, ils n’expirent pas. En conséquence, les jetons ne sont pas totalement sécurisés et sont sujets à des menaces. Avec l’accès à un jeton ou un secret de vérification, un client/utilisateur non autorisé, tel que des hackers et des sites malveillants, peut effectuer des demandes non autorisées et accéder aux identifiants et informations personnelles des utilisateurs. Le cadre OAuth 2.0 surmonte cette faiblesse avec des jetons expirables. Une fois que le jeton d’accès expire, l’accès à l’application expire également, à moins qu’un autre jeton d’accès soit généré via le cycle de rafraîchissement. OAuth 2.0 génère des jetons d’accès « à courte durée de vie ». Ils durent entre la durée d’une session à quelques semaines mais utilisent des jetons de rafraîchissement pour acquérir un nouveau jeton d’accès plutôt que de faire répéter tout le processus à l’utilisateur pour réautoriser l’application.

Développement côté client 

OAuth 2.0 prend en compte les clients non-web ainsi que les flux de travail web. OAuth 2.0 propose des flux d’autorisation spécifiques pour les applications web, les applications de bureau, les téléphones mobiles, les TV/consoles, et les applications non basées sur un navigateur telles que les services basés sur API. Il est également beaucoup plus facile à mettre en œuvre, à utiliser et à fournir une authentification forte.

Séparation des Tâches

OAuth 2.0 sépare les fonctions de livraison de ressources et de gestion de l’autorisation des utilisateurs. Des serveurs physiquement séparés, ou même des noms de domaine différents, peuvent gérer les deux rôles. Ainsi, chaque partie du système peut être mise à l’échelle indépendamment. Par conséquent, le serveur d’autorisation nécessite l’ID client et le secret, mais le serveur API n’acceptera que les jetons d’accès. En conséquence, la base de données évite le partage de données avec les serveurs API. Cela rend la nouvelle norme plus applicable pour les grandes entreprises. Cela est dû au fait qu’il permet à ces systèmes de se produire indépendamment, par différentes équipes, et selon des calendriers différents.

Jetons Porteurs et Suppression des Exigences Cryptographiques

OAuth crée un équilibre entre la facilité d’utilisation des API et les bonnes pratiques de sécurité. L’utilisation du jeton porteur simplifie la mise en œuvre d’OAuth en éliminant la complexité des signatures cryptographiques dans les normes OAuth 1.0. OAuth 2.0 nécessite uniquement le jeton lui-même dans la requête.

Authentification à Deux Facteurs

OAuth utilisait la méthode d’authentification à un seul facteur, moins sécurisée, pour la divulgation des comptes. L’authentification à un seul facteur pouvait être facilement compromise puisque les pirates n’avaient besoin d’obtenir qu’une seule information pour accéder. OAuth 2.0, cependant, nécessite plus de niveaux d’authentification pour donner accès à un utilisateur. Il utilise la tokenisation et une nature à deux facteurs pour sécuriser les comptes utilisateurs.

Pourquoi OAuth est-il important ?

Des applications web sophistiquées, des applications mobiles et des modèles d’affaires uniques ont émergé. L’évolution des cas d’utilisation vers de nouveaux scénarios rend les mécanismes d’autorisation traditionnels inadéquats. Beaucoup de ces scénarios nécessitent qu’un serveur ou un client communique (se connecte) avec plusieurs serveurs pour exécuter une demande ou une action. Le besoin de fournir de nouvelles solutions pour partager des données et fédérer l’identité parmi plusieurs parties de confiance est, de ce fait, intensifié. OAuth est un cadre de sécurité puissant qui s’efforce de résoudre les défis associés à l’autorisation. Par conséquent, il est important d’intégrer OAuth dans les applications et les sites web. Voici pourquoi :

Il sécurise les informations du serveur même lors du partage

Le protocole OAuth dépend de SSL (Secure Sockets Layer) pour garantir que les données entre le serveur web et le navigateur restent privées. En fait, c’est un élément important de l’authentification du site web de toute organisation car il protège les identifiants des utilisateurs.

La tokenisation permet uniquement un accès limité aux données des utilisateurs

Les informations sensibles telles que les informations de carte de crédit et les dossiers médicaux se voient attribuer des identifiants de jeton et sont stockées à distance. Les commerçants reçoivent les jetons, et non les données réelles. Ainsi, les informations partagées restent privées. Les tiers qui n’ont pas encore accès à leurs dossiers médicaux, mots de passe ou numéro de carte de crédit, peuvent vérifier le jeton pour les transactions.

OAuth permet l’utilisation de l’authentification unique (SSO)

Le SSO assure un accès facile, contrôle les risques et donne aux utilisateurs le contrôle de leurs données. Il améliore le moral et la productivité des utilisateurs en permettant l’accès à plusieurs applications avec seulement un ensemble d’identifiants de connexion. Il consolide les identifiants des utilisateurs et simplifie le processus de connexion pour les utilisateurs. Cela élimine le tracas de gérer de nombreux mots de passe ou de répéter les mêmes informations lors de l’utilisation de services en ligne.

Cela permet aux utilisateurs de contrôler ce que les services tiers peuvent faire avec leurs ressources

Les processus traditionnels nécessitent le partage des identifiants avec des sites tiers pour partager des informations. Cependant, OAuth limite les tiers et les empêche de réaliser certaines actions néfastes telles que modifier les paramètres de l’utilisateur ou changer les identifiants de l’utilisateur, et bloquer l’accès de l’utilisateur au compte.

Conclusion

OAuth (Open Authorization) protège autant que possible les informations des utilisateurs contre les violations de données. Le premier protocole pour OAuth 1.0 a été réécrit en OAuth 2.0. L’industrie de la cybersécurité adopte largement OAuth 2.0 comme l’option la plus sécurisée pour l’autorisation. Bien qu’il n’existe aucun système d’autorisation infaillible, OAuth est l’un des meilleurs. Des sites tels que Facebook, Twitter, LinkedIn, Google, Amazon, Instagram et GitHub utilisent OAuth comme leur principale technologie d’authentification et d’autorisation.