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.