OAuth 2.0 Vs OpenID Connect Vs SAML : quelles différences ?

OAuth 2.0 Vs OpenID Connect Vs SAML : quelles différences ?

OAuth 2.0 Vs OpenID Connect Vs SAML : quelles différences ?

Il existe autant de manières de protéger des données que de les attaquer. De l’authentification unique (SSO - Single Sign-On) à l’authentification multifacteur (MFA) en passant par les pare-feux on-premise, les possibilités sont légion. C’est toutefois bien en amont que les développeurs et les professionnels IT doivent déterminer comment protéger les données et les identités, et donc choisir quelle norme doit être déployée pour assurer la protection des identités fédérées.

Cette décision ne s’impose pas toujours comme une évidence. Beaucoup ont du mal à faire la différence entre OAuth 2.0, OpenID Connect et SAML 2.0 (Security Assertion Markup Language), des normes qui permettent toutes trois de structurer le processus de fédération. Cet article a pour objectif d’apporter un éclairage sur ces normes, leurs différences et les applications possibles pour les entreprises.

Nous vous proposons également un comparatif spécifique entre SAML et OAuth dans un autre article, si c’est ce que vous recherchez plus particulièrement.

Spécificités de chaque norme

La principale différence entre ces trois normes est qu’OAuth 2.0 est un framework qui contrôle les autorisations d’accès à une ressource protégée (application ou ensemble de fichiers, p. ex.), alors qu’OpenID Connect et SAML sont deux normes sectorielles pour l’authentification fédérée. Autrement dit, OAuth 2.0 est utilisé dans des situations radicalement différentes que les deux autres normes (voir les exemples ci-dessous) et peut être implémenté en même temps qu’OpenID Connect ou SAML.

En utilisant OpenID Connect ou SAML de façon indépendante, les entreprises peuvent assurer l’authentification des utilisateurs (user authentication) et déployer l’authentification unique (SSO). Bien que les deux permettent d’encadrer la connexion, ils présentent différents avantages et inconvénients.

  • OpenID Connect s’appuie sur le protocole OAuth 2.0, associé à un jeton JSON Web Token (JWT) supplémentaire, appelé « jeton d’identification » (ID token), pour normaliser les aspects pouvant être personnalisés avec OAuth 2.0, comme les étendues et la découverte des terminaux. Cette norme a été conçue spécifiquement pour l’authentification des utilisateurs. Elle est couramment utilisée pour permettre aux utilisateurs de se connecter à des applications mobiles ou à des sites web commerciaux.
  • SAML 2.0 est totalement indépendant d’OAuth et repose sur un échange de messages pour assurer une authentification au format SAML XML, plutôt que sur un jeton JWT. Cette norme est plus généralement utilisée pour permettre aux utilisateurs d’entreprise d’accéder à plusieurs applications en se connectant une seule fois.

Match à trois : OAuth 2.0, OpenID Connect et SAML

La question n’est pas de savoir quelle structure une entreprise doit utiliser, mais à quel moment chacune d’entre elles doit être déployée. Une solution robuste de gestion des identités tirera parti de ces trois structures, mais à différentes fins, suivant le type d’opérations que l’entreprise cherche à protéger. Les cas d’usage sont les suivants :

OAuth 2.0 : si vous vous êtes déjà inscrit sur une nouvelle application et avez accepté qu’elle récupère automatiquement vos contacts à partir de Facebook ou de votre répertoire téléphonique, il y a de fortes chances que vous ayez utilisé OAuth 2.0. Cette norme permet un accès délégué sécurisé. Autrement dit, une application peut réaliser des actions ou accéder à des ressources à partir d’un serveur au nom de l’utilisateur, et ce, sans que ce dernier ait à partager ses identifiants. Pour cela, elle permet au fournisseur d’identité d’émettre des jetons destinés aux applications tierces avec l’accord de l’utilisateur.

OpenID Connect : si vous avez déjà utilisé votre compte Google pour vous connecter à des applications comme YouTube ou votre compte Facebook pour vous connecter à une boutique en ligne, alors vous avez déjà employé cette méthode d’authentification. OpenID Connect est une norme ouverte sur laquelle s’appuient de nombreuses entreprises pour authentifier les utilisateurs. Ceux-ci n’ont qu’à se connecter au fournisseur d’identité pour accéder à d’autres sites web ou applications, sans avoir à se connecter ou à partager leurs informations de connexion. 

SAML 2.0 : vous avez sûrement déjà rencontré l’authentification SAML dans votre environnement de travail. Cette norme permet notamment de vous connecter à votre fournisseur d’identité ou à l’intranet de l’entreprise, et d’accéder ensuite à de nombreux services supplémentaires, comme Salesforce, Box ou Workday, sans avoir à saisir à nouveau vos identifiants. SAML est une norme XML conçue pour l’échange de données d’authentification et d’autorisation entre les fournisseurs d’identité et les fournisseurs de services, afin de contrôler l’identité des utilisateurs et les autorisations associées, puis de leur accorder ou de leur refuser l’accès aux services (access management).

Les entreprises s’appuient sur des protocoles et des frameworks web comme OAuth 2.0, OpenID Connect et SAML pour structurer et sécuriser les identités fédérées. Savoir quand tirer parti de chaque norme est une condition essentielle pour la protection intégrale des données de votre entreprise.

Vous souhaitez en savoir plus ?

La solution d’authentification unique (SSO) d’Okta s’intègre avec n’importe quelle application ou API, y compris OpenID Connect et SAML.