Que signifie Oauth ?
OAuth, ou Open Authorization, est un protocole d’autorisation standard ouvert pour la délégation d’accès. Il s’agit d’une méthode sécurisée permettant aux utilisateurs d’autoriser les fournisseurs de services (c’est-à-dire les sites Web et les applications) à accéder à leurs informations sans leur donner leurs mots de passe.
OAuth fournit aux clients un accès délégué sécurisé aux ressources du serveur au nom du propriétaire du serveur. Les flux d’autorisation spécifiques permettent au client d’accéder aux ressources protégées sans avoir à fournir son mot de passe. Le client utilise plutôt des jetons d’accès qui peuvent être approuvés par le propriétaire de la ressource pour lui accorder l’accès à cette ressource.
Que sont les jetons OAuth ?
Les jetons OAuth autorisent l’accès d’un utilisateur aux ressources. En d’autres termes, ils n’authentifient pas les utilisateurs, mais sont utilisés par le fournisseur de services pour autoriser l’accès à d’autres ressources au nom de l’utilisateur.
Une transaction OAuth se produit lorsqu’un utilisateur demande l’autorisation à une autre ressource en utilisant son identité de fournisseur de services. La ressource demande l’autorisation au fournisseur de services, qui la lui donne sous la forme d’un jeton de demande et d’un secret. Ensuite, la ressource redirige l’utilisateur vers son fournisseur de services pour authentifier la demande. À ce stade, la ressource échange le jeton de demande contre un jeton d’accès et un code secret. Si les deux jetons partagent le même code secret, le processus OAuth est terminé et l’utilisateur a délégué avec succès l’accès à la ressource au fournisseur de services.
Le processus OAuth
Étape 1
Demande d’accès
Anne fait une demande sur YouTube (ressource) pour publier des vidéos directement sur son fil Twitter (fournisseur de services). YouTube demande alors à Twitter l’autorisation d’accéder.
Étape 2
Jeton de demande et échange de codes secrets
Twitter fournit à YouTube un jeton de demande et un code secret.
Étape 3
Authentification
YouTube redirige Anne vers Twitter pour se connecter. Anne fournit à Twitter ses identifiants de connexion et authentifie que la demande de YouTube a été initiée par l’utilisateur.
Étape 4
Échange de jetons d’accès
Une fois la demande authentifiée par l’utilisateur, YouTube demande à Twitter d’échanger le jeton de demande et le code secret contre un jeton d’accès. Si les codes secrets associés aux jetons correspondent, Twitter fournit le jeton d’accès à YouTube et lui accorde l’accès.
Étape 5
Accès accordé
Anne peut désormais utiliser YouTube en toute sécurité pour publier des vidéos directement sur son fil Twitter.
L’exemple ci-dessus résume un processus OAuth général. OAuth permet également un contrôle et des autorisations plus granulaires, comme le droit de révoquer les jetons quand l’utilisateur le souhaite et de définir différents niveaux d’accès aux fournisseurs de services pour différentes ressources.
OAuth 1.0 par rapport à OAuth 2.0
En 2012, OAuth 2.0 a été introduit comme une révision majeure d’OAuth 1.0. Les modifications apportées à cette version d’OAuth étaient suffisamment importantes pour que les versions 2.0 et 1.0 ne soient pas compatibles. OAuth 2.0 a été conçu pour corriger une faille de sécurité de fixation de session dans le flux d’autorisation OAuth.
Bien que ce problème ait été résolu avec OAuth 2.0, la nouvelle version ne définit ni ne prend en charge intentionnellement le cryptage, la signature, la vérification du client ou la liaison de canal, mais exige au contraire que les exécutants utilisent pour cela un autre protocole de sécurité tel que HTTPS/TLS.
Les différences entre OAuth 1.0 et 2.0 sont résumées ci-dessous :
OAuth par rapport à SAML - quelle est la différence ?
SAML est un langage à variantes XML qui décrit un cadre permettant à un périphérique d’effectuer à la fois l’authentification et l’autorisation pour le compte d’un ou plusieurs périphériques.
Avec l’apparition d’options légères pour l’encodage des données, telles que JSON, OAuth a été adopté pour prendre en charge les utilisateurs de périphériques mobiles. Bien qu’OAuth soit un protocole plus récent qui a évolué à partir d’un besoin de remplacement du protocole SAML, les deux sont essentiels pour une authentification unique (SSO) sécurisée.
En d’autres termes, OAuth n’est pas une alternative à SAML, mais les deux protocoles peuvent se compléter. Par exemple, dans un environnement SSO, SAML peut être responsable de l’authentification (confirmant que l’utilisateur est authentique et doit être autorisé à accéder) et OAuth sera responsable de l’autorisation (accordant l’accès à des ressources protégées spécifiques).