Définition d'OAuth
OAuth est un protocole qui permet un accès sécurisé et contrôlé aux ressources d'un utilisateur sur un site Web ou une application par un autre site Web ou une autre application, sans qu'il soit nécessaire de partager les identifiants de l'utilisateur (p. ex. nom d'utilisateur et mot de passe). Le protocole est généralement utilisé pour permettre l'authentification unique (SSO), qui autorise les utilisateurs à se connecter à plusieurs services au moyen des identifiants d'un seul fournisseur.
Le protocole OAuth original (souvent appelé OAuth 1.0) reposait sur un processus complexe dans lequel l'application demandeuse obtenait un jeton temporaire et une clé secrète de l'utilisateur, qu'elle échangeait ensuite contre un jeton d'accès auprès du fournisseur de services. Ce jeton d'accès pouvait être utilisé pour accéder aux ressources de l'utilisateur sur la plateforme du fournisseur de services. Bien qu'OAuth 1.0 offrît un certain niveau de sécurité, il était relativement compliqué à implémenter et comportait certaines limites.
Avant OAuth, les utilisateurs accédaient à une application tierce en fournissant simplement un mot de passe et en laissant l'application agir en leur nom. Les applications Twitter, par exemple, demandaient votre mot de passe pour vous fournir des statistiques sur votre activité et votre compte. Cette façon de faire posait de sérieux problèmes, pour plusieurs raisons :
- Sécurité des mots de passe : Ces applications stockaient souvent vos mots de passe sans même les chiffrer, ce qui facilitait leur vol par des pirates une fois ceux-ci entrés dans un système.
- Révocation des permissions : Un autre problème majeur : la seule façon pour les utilisateurs de révoquer l'accès d'une application était de changer leur mot de passe, ce qui est plutôt contraignant et loin d'être idéal pour la plupart des utilisateurs.
Parmi les nombreux exemples d'authentification apparus après l'abandon de cet ancien modèle, on trouve :
- L'API de Flickr (aussi appelée « FlickrAuth »), qui utilisait des « frobs » et des « tokens » (jetons).
- AuthSub, de Google.
- BBAuth (Browser-Based Auth), de Yahoo!
Le problème avec ces solutions, cependant, était qu'elles n'étaient pas interopérables et ne pouvaient pas fonctionner ensemble. C'est pourquoi, en 2007, un groupe de chercheurs comprenant Blaine Cook, Kellen Elliott-McCrea, Larry Halff, Tara Hunt, Ian McKeller et Chris Messina a finalement créé une norme ouverte de contrôle d'accès aux API pouvant être utilisée par n'importe quel système. Peu après, avec la contribution de Google et d'AOL, la spécification OAuth a enfin été publiée, mettant fin à l'ère de l'authentification par mot de passe non sécurisée.
L'équipe KZero
Découvrez d'autres contenus instructifs de l'équipe compétente de KZero dans nos sections blogue et guides.