Comprendre l'authentification SAML : tour d'horizon complet
La plupart du temps, lorsque nous naviguons sur le Web, nous ne communiquons pas avec un seul site et ses services à la fois, mais avec plusieurs. Souvent, cela se produit en arrière-plan afin de faciliter la vie des utilisateurs et des nombreuses entreprises qui leur offrent des services.
La convivialité est une qualité précieuse, mais elle ne vaut rien sans des interactions sécurisées et si des parties non autorisées pouvaient accéder facilement aux ressources. La plupart des brèches de sécurité découlent d'un accès non autorisé et, en 2022, le coût d'une brèche de données a atteint un sommet historique de 4,35 millions de dollars américains.
Offrir une authentification sécurisée est un attribut clé du maintien d'une interface sûre avec les applications et les services Web. Concrètement, cela signifie mettre en place des contrôles qui garantissent que seuls les individus et les systèmes autorisés peuvent accéder aux données non publiques des applications Web.
Dans cet article, nous verrons comment l'authentification sécurisée est réalisée grâce à une norme d'authentification omniprésente sur Internet : SAML (Security Assertion Markup Language).
L'évolution des langages de balisage
Avant de plonger dans ce qu'est SAML, comprenons d'où vient ce langage de balisage et pourquoi il est si largement utilisé.
Les langages de balisage permettent de structurer et d'étiqueter l'information. Cela garantit que différents ordinateurs interprètent les données de la même façon et rend possible la personnalisation de l'affichage de l'information. Par exemple, le HTML (Hypertext Markup Language) suffit à lui seul pour créer une page Web simple et statique.
Le HTML demeure une composante essentielle du Web moderne. Cependant, à mesure que le World Wide Web prenait de l'ampleur et devenait un rouage vital de la plupart des entreprises, les langages de balisage limités et statiques comme le HTML sont devenus insuffisants. Le XML (Extensible Markup Language) a été conçu pour offrir une structure universelle permettant de définir de nouveaux langages de balisage. Du même coup, il assure l'interopérabilité de toutes les interactions entre serveurs Web et navigateurs. C'est un peu comme parler une langue commune.
Il existe aujourd'hui de nombreux langages de balisage fondés sur XML qui remplissent une variété de fonctions. SAML est l'un des plus couramment utilisés ; il a été créé pour répondre aux enjeux de la gestion des identités et du contrôle d'accès tout en assurant l'interopérabilité.
Qu'est-ce que SAML ?
Le Security Assertion Markup Language (SAML) est une norme fondée sur XML servant à échanger de l'information d'autorisation et d'authentification. Autrement dit, elle sert à confirmer aux applications et aux services Web que les utilisateurs sont bien qui ils prétendent être.
Lorsqu'il faut permettre à un utilisateur de se connecter une seule fois pour accéder ensuite à diverses applications Web distinctes, ses données d'authentification doivent être partagées entre les systèmes de manière normalisée. C'est le rôle que joue SAML. SAML élimine la nécessité pour les utilisateurs de gérer plusieurs identités en ligne en leur permettant de s'authentifier une seule fois et d'accéder à de multiples applications. Cela comporte plusieurs avantages, notamment :
- Sécurité renforcée : SAML accroît la sécurité en supprimant les identifiants supplémentaires, ce qui élimine les occasions de vol d'identité. Il réduit aussi les possibilités d'hameçonnage en diminuant le nombre de fois où l'utilisateur doit se connecter sur Internet au moyen d'un de ces formulaires de connexion par nom d'utilisateur.
- Accès facilité : SAML améliore l'accès aux applications en supprimant les obstacles à l'utilisation : les utilisateurs n'ont plus à saisir de mot de passe, ils cliquent simplement sur un lien et se retrouvent dans l'application.
- Gestion simplifiée : SAML réduit le temps et les coûts d'administration en supprimant les efforts redondants liés au maintien d'identifiants en double, ainsi que tous ces appels supplémentaires au service d'assistance pour réinitialiser des mots de passe perdus ou oubliés.
L'authentification unique SAML (SSO, ou Single Sign-On) est l'une des mises en œuvre les plus courantes de SAML. Bien des utilisateurs connaissent le SSO, mais ignorent que c'est SAML qui le rend possible.
Supposons que votre entreprise, Pelican & Albatross, utilise Outlook comme service de courriel d'entreprise. Vous souhaitez conserver la maîtrise des identifiants d'accès des utilisateurs, appliquer des règles de mots de passe et empêcher les employés congédiés d'accéder à leur compte de courriel professionnel.
Cela peut être réalisé en établissant une relation de confiance entre Microsoft et Pelican & Albatross au moyen de SAML. Une fois cette relation en place, chaque fois qu'un utilisateur de votre entreprise tente d'accéder à son compte Outlook professionnel, Microsoft redirige sa demande vers le service SSO de Pelican & Albatross, qui authentifie l'utilisateur et retourne une réponse SAML (approbation ou refus) au service demandant l'authentification, en l'occurrence Microsoft.
Le Security Assertion Markup Language — comme d'autres langages normalisés — est élaboré et maintenu par OASIS (The Organization for the Advancement of Structured Information Standards). Sa version actuelle, SAML 2.0, est utilisée depuis 2005 sans rien perdre de sa popularité ni de son efficacité.
Remarque : SAML est conçu pour les connexions à des ressources Web, contrairement à la norme LDAP, qui s'adresse aux ressources sur site.
Les composantes clés de SAML
Une architecture SAML comporte 3 rôles (ou composantes) clés :
- Utilisateur final ou mandant (Principal) – l'utilisateur qui doit accéder à une ressource réseau (Web, infonuagique), comme une application, pour accomplir ses tâches.
- Fournisseur de services (SP) – L'entité qui met cette application ou ce système à la disposition des utilisateurs, par exemple Microsoft pour O365, Atlassian pour Jira, etc.
- Fournisseur d'identité (IdP) – L'entité qui sert d'intermédiaire pour l'accès et le valide. L'IdP peut recourir à diverses formes d'authentification, du nom d'utilisateur et mot de passe à l'authentification multifacteur, comme la biométrie.
La figure 1 illustre le fonctionnement concret de ce flux dans un scénario SSO typique.

Figure 1 : flux SAML initié par le fournisseur d'identité
Nous pouvons aussi recourir à une analogie simple, celle d'un voyageur qui franchit un poste frontalier, pour mieux expliquer les différentes relations d'un flux SAML ; le scénario serait le suivant :
Le mandant est le voyageur.
● Le fournisseur de services est le représentant du pays étranger, en l'occurrence l'agent frontalier.
Le fournisseur d'identité est l'émetteur du passeport (qui identifie le voyageur), soit ici l'autorité du pays d'origine.
Dans cet exemple, le voyageur ne peut franchir la frontière sans un passeport valide. Sa validité est certifiée par l'émetteur du passeport, qui conserve des données numériques sur celui-ci (nom, validité, visas, etc.). Le contrôle frontalier vérifie ces données et prend des décisions en fonction de celles-ci.
Avant d'examiner un exemple du fonctionnement de l'authentification SAML, il reste quelques notions à assimiler.
Il vaut la peine de savoir qu'une identité numérique est bien plus qu'un simple identifiant d'utilisateur. L'identité numérique d'un utilisateur est un ensemble d'attributs, de droits et de caractéristiques propres à cet utilisateur. Un fournisseur d'identité gère toute cette information à un emplacement centralisé, ce qui explique le rôle si important qu'il joue dans une intégration SAML.
À mesure que les systèmes ont évolué vers des environnements distribués, des normes comme SAML et ses protocoles ont permis aux sites Web, aux applications Web et aux services de communiquer entre eux de façon efficace et sécurisée. Cette capacité est communément appelée interopérabilité.
La fédération
Une identité fédérée (portable) permet à l'utilisateur d'être authentifié auprès de plusieurs systèmes et entreprises. La fédération est impossible sans l'établissement d'une relation de confiance au sein de l'environnement fédéré.
La confiance
Pour que tout cela fonctionne de manière sécuritaire, l'IdP et le SP doivent se faire mutuellement confiance. Cela garantit que le SP acceptera les jetons SAML générés par l'IdP. Un IdP vérifie l'identité d'un utilisateur et transmet au SP un jeton contenant une attestation de cette identité (ainsi que d'autres attributs et revendications).
Comment fonctionne l'authentification SAML ?
Jusqu'ici, nous nous sommes concentrés sur la théorie, mais comment cela fonctionne-t-il dans la vraie vie ? Prenons un scénario d'utilisation simple.
Disons que Michael, qui travaille au service de la GRC (CRM) d'une entreprise nommée Happy Logistics, veut accéder à Salesforce par l'entremise du portail de son entreprise. Ce que Michael sait, c'est qu'il se connecte au réseau de l'entreprise, ouvre le portail, clique sur l'icône Salesforce, et voilà. Même si cette action lui est facile à réaliser, pourvu qu'il détienne les droits d'accès nécessaires, plusieurs étapes se déroulent « en coulisses ». Pour l'illustrer, voici une décomposition étape par étape du processus SAML.
Dans cet exemple, Michael est l'utilisateur (le mandant), Salesforce est le fournisseur de services (SP) et Kelvin0 est le fournisseur d'identité (IdP).

Figure 2 : flux d'authentification SAML
Le processus d'authentification SAML étape par étape :
Étape 1 : l'utilisateur (le mandant) tente d'accéder à l'application hébergée du fournisseur de services
Étape 2 : le fournisseur de services génère une requête SAML
Étape 3 : le fournisseur de services redirige le navigateur du mandant vers l'URL du SSO
Étape 4 : le fournisseur d'identité analyse la requête et authentifie le mandant
Étape 5 : le fournisseur d'identité génère une réponse SAML(*)
Étape 6 : le fournisseur d'identité retourne une réponse encodée au fournisseur de services par l'entremise du navigateur Web du mandant
Étape 7 : le fournisseur de services vérifie la réponse
Étape 8 : l'utilisateur (le mandant) est connecté à l'application du fournisseur de services.
(*) Dans notre cas d'utilisation, nous présumons que la réponse d'authentification SAML de l'IdP est positive.
Derrière la connexion toute simple de Michael se cache un processus SAML détaillé, qui lui permet de travailler sans heurts pendant que le système assure la sécurité de l'ensemble. C'est la commodité pour l'utilisateur et la sécurité qui vont de pair. Michael est maintenant content de pouvoir faire son travail et, on l'espère, les clients aussi.
Les assertions SAML
Nous disions plus tôt que le Security Assertion Markup Language repose sur XML. Les assertions sont des messages transmis dans un message XML de l'IdP vers le SP, contenant de l'information sur l'identité de l'utilisateur et, possiblement, d'autres attributs ou revendications d'autorisation. Ces assertions renferment des énoncés que les SP utilisent ensuite pour prendre des décisions quant à l'accès du mandant à la ressource demandée.
Il existe 3 assertions SAML :
- Assertion d'authentification : Elle comprend l'identité de l'utilisateur et de l'information sur la façon dont cette identité a été vérifiée (heure de la connexion, méthodes d'authentification, etc.)
- Assertion d'attribut : Elle contient de l'information sur l'utilisateur que l'IdP et le SP possèdent tous deux dans leurs annuaires et qui peut servir à faire correspondre les enregistrements durant le processus d'authentification.
- Assertion d'autorisation : Elle contient des attributs d'autorisation qui aident le SP à déterminer si l'utilisateur devrait être autorisé à accéder au service.
Les assertions sont une composante clé de la gestion des identités et du contrôle d'accès par SAML. Les énoncés qu'elles véhiculent permettent au SP de prendre les bonnes décisions quant à l'acceptation ou au refus d'une demande d'accès, ce qui procure aux entreprises une protection de sécurité cruciale et un environnement de confiance. Cela dit, la charge de l'administration des identités demeure du ressort de l'IdP.
Les profils et protocoles SAML
Les profils SAML sont des ensembles prédéfinis de règles et de lignes directrices qui dictent la façon dont les messages SAML doivent être échangés entre les fournisseurs d'identité (IdP) et les fournisseurs de services (SP), de manière normalisée et interopérable.
La norme définit de nombreux profils et protocoles SAML. Les profils SAML précisent des cas d'utilisation et des scénarios particuliers pour la mise en œuvre de l'authentification et de l'autorisation fondées sur SAML, ce qui assure la cohérence et la compatibilité entre les différentes implémentations. Ces profils fournissent une structure commune aux messages SAML, y compris les requêtes d'authentification, les assertions et les autres composantes connexes.
Les profils SSO sont les plus répandus, le profil Web Browser SSO étant le plus courant.
Profils SAML :
- Profil Web Browser SSO (expliqué tout au long de cet article) – Ce profil vise à activer le SSO pour les applications Web. Il définit comment un utilisateur peut se connecter une seule fois au système d'un fournisseur d'identité, puis accéder à plusieurs fournisseurs de services sans avoir à ressaisir ses identifiants.
- Profil Enhanced Client or Proxy (ECP) – Ce profil permet le SSO pour les clients autres que les navigateurs, comme les applications de bureau ou les applications mobiles, à l'aide d'une composante mandataire qui authentifie et autorise l'utilisateur.
- Profil IdP Discovery – Un SP peut découvrir quel IdP un mandant utilise dans le cadre du profil Web Browser SSO.
- Profil Single Logout – Ce profil précise les mécanismes permettant de déconnecter un utilisateur de tous les fournisseurs de services associés lorsqu'il se déconnecte du fournisseur d'identité. Il garantit que la session de l'utilisateur est close dans l'ensemble des services connectés.
- Profil Name Identifier Management – Ici, l'IdP peut aviser le SP de changements dans le format ou la valeur servant à identifier un mandant donné.
La transmission des données SAML peut s'effectuer au moyen de différents protocoles (propres à chaque profil), mais SOAP est l'un des plus répandus. SOAP est une spécification fondée sur XML qui décrit comment l'information sur les services Web est échangée de façon structurée. SOAP fournit une structure de message et une convention de représentation indépendantes du langage, de la plateforme et du mode de transport.
Les avantages de l'authentification SAML
Examinons quelques avantages importants de l'utilisation de l'authentification SAML dans les applications Web :
SSO – des employés et des administrateurs satisfaits. La capacité de SSO offerte par SAML réduit le temps que les utilisateurs consacrent à s'authentifier. Elle permet aussi à l'administrateur de rationaliser la gestion des comptes d'utilisateurs et de mieux encadrer les droits d'accès, réduisant ainsi le temps consacré à la gestion des comptes, des permissions et des réinitialisations de mots de passe.
Sécurité renforcée – La complexité est l'ennemie de la sécurité. Une gestion des accès simplifiée et centralisée grâce à SAML (authentification par assertions, gestion des utilisateurs et approvisionnement des comptes) se traduit par une sécurité accrue. Même si des identifiants et mots de passe distincts étaient censés offrir un niveau de sécurité supérieur, ils finissent souvent par être compromis en raison de mots de passe faibles et réutilisés. Avec SAML, le problème est réglé. L'authentification, un attribut de sécurité fondamental, atteint son objectif tout en améliorant l'expérience utilisateur (une combinaison rare).
Conformité – De plus, la sécurité s'accompagne de l'assurance que les renseignements personnels identifiables (RPI) et toute autre information confidentielle ne sont ni divulgués à des parties non autorisées ni modifiés par celles-ci. En recourant à l'authentification SAML, une entreprise peut démontrer sa diligence raisonnable dans la mise en place de mesures visant à réduire au minimum les risques liés à la sécurité de l'information, conformément aux règlements applicables comme la LPRPDE, la CCPA, la HIPAA, la loi SOX, le RGPD et bien d'autres.
Interopérabilité et prise en charge de la fédération – Le Security Assertion Markup Language est l'un des moyens d'assurer la fédération (la portabilité) des identités et des droits qui leur sont associés, ce qui signifie qu'ils peuvent être utilisés au-delà des frontières organisationnelles. Puisque la fédération, à l'aide de SAML, permet à l'utilisateur d'être authentifié auprès de plusieurs systèmes et entreprises, elle offre aux entreprises comme aux consommateurs une façon plus commode de faire du commerce électronique.
Les pratiques exemplaires en matière de SAML
Avec une bonne hygiène cybernétique, SAML peut remplir son rôle plutôt que de devenir un vecteur d'attaque supplémentaire. Voici quelques pratiques exemplaires pour mettre en œuvre l'authentification Security Assertion Markup Language de manière efficace et sécuritaire :
- Assurez une configuration adéquate des IdP et des SP :
N'utilisez que des protocoles sécurisés et des normes de chiffrement reconnues pour les communications entre les parties (par exemple TLS v1.2 pour le transport, SHA-2 pour le chiffrement et une autorité de certification de confiance).
De plus, OWASP.org a élaboré une liste de recommandations pour la configuration de SAML, que nous avons trouvée fort utile.
- Mettez à jour et corrigez régulièrement les implémentations SAML :
Comme pour l'ensemble de vos systèmes, veillez à ce que les mises à jour et les correctifs soient installés en temps opportun et analysez votre système régulièrement dans le cadre d'une solide politique de gestion des vulnérabilités.
- Surveillez et vérifiez les transactions SAML afin de déceler les vulnérabilités potentielles :
Assurez-vous que des capacités de journalisation et de surveillance sont en place et que les alertes, incidents ou vulnérabilités sont signalés et corrigés.
- Renforcez la sécurité par le pare-feu humain :
Puisque la sécurité ne concerne pas uniquement les systèmes, assurez-vous que les bonnes personnes gèrent SAML et la gouvernance des identités en général, que le principe de séparation des tâches est respecté et que des formations en sécurité sont offertes régulièrement.
SAML dans des cas d'utilisation réels
Bien que d'autres normes soient apparues, comme OAuth et OpenID Connect, le Security Assertion Markup Language demeure très répandu et s'est révélé une méthode solide d'authentification sécurisée. Voici quelques cas d'utilisation courants
Cas d'utilisation 1 – Environnements comptant de multiples systèmes infonuagiques et applications SaaS
L'environnement de l'entreprise de Marissa se compose principalement de services infonuagiques et d'applications en mode logiciel-service (SaaS). Elle souhaite les intégrer à un portail Web unique, qui offrira aux employés un guichet unique pour accéder au système de GRC, au courriel, au système des RH, au service d'assistance, à la plateforme de gestion des voyages, au système comptable et à quelques autres applications.
Ses employés détiennent des droits d'accès différents à ces applications et doivent y accéder de façon sécuritaire. Marissa tient aussi à ce que ses employés gagnent du temps et n'aient pas à se soucier de gérer divers signets, de saisir des mots de passe distincts et d'inonder le service d'assistance de demandes de réinitialisation de mots de passe.
Pour atteindre ces objectifs, Marissa a mis en place un flux d'authentification utilisant SAML. Les utilisateurs pouvaient s'authentifier une seule fois auprès de leur IdP et accéder à un portail regroupant toutes leurs applications, ce qui éliminait la nécessité de s'authentifier de nouveau pour chacune d'elles
Votre entreprise entretient peut-être un niveau de connectivité encore plus impressionnant avec d'autres organisations et personnes. Comment l'authentification est-elle gérée de manière sécuritaire et efficace dans votre entreprise ? Avec KZero Passwordless, non seulement vous pourriez configurer le SSO avec votre IdP, mais vous pourriez aussi vous authentifier auprès de celui-ci sans mot de passe grâce à Multi-Pass.
Cas d'utilisation 2 – Fédération et interopérabilité
Une compagnie aérienne peut interagir avec un utilisateur qui, au moment de réserver un billet d'avion, reçoit des suggestions d'hébergement, de transport terrestre et d'activités de loisir. Souvent, ces réservations peuvent être effectuées sans qu'on demande à l'utilisateur de créer un nouveau compte, d'effectuer une connexion supplémentaire ou d'ouvrir une autre page Web. Une fois le consentement de l'utilisateur obtenu, son identité est fédérée (transférée) entre les entreprises de confiance qui font partie de l'environnement Web de la compagnie aérienne.
SAML fournit les éléments d'authentification qui rendent possibles les systèmes de gestion des identités fédérées.
Comment votre entreprise met-elle à profit l'authentification sécurisée pour ses transactions interentreprises (B2B) et avec les consommateurs (B2C) afin de faciliter l'intégration entre différents secteurs d'activité ?
Conclusion
À retenir
- Comme la majeure partie des communications dans le monde d'aujourd'hui passe par des processus Web, il importe de comprendre les technologies connexes, telles que l'authentification SAML, et de les appliquer de manière sécuritaire.
- Le coût croissant de la gestion de multiples environnements — conjugué aux préoccupations de sécurité liées à la saisie et au stockage d'identifiants sur de nombreux services et à la nécessité constante de fluidifier l'expérience utilisateur — a favorisé l'adoption de l'authentification unique (SSO). Cette technologie permet aux utilisateurs de saisir leurs identifiants une seule fois pour accéder ensuite à une variété d'applications et de services par l'entremise du SSO.
- Souplesse, interopérabilité, intégration, sécurité et conformité sont des avantages entrelacés que permet d'obtenir la mise en œuvre de SAML.
L'avenir de l'authentification est déjà là
À une époque marquée par la menace grandissante des brèches de données et par l'impératif croissant de protéger nos informations les plus précieuses, quoi de plus rassurant que de renforcer vos identifiants d'utilisateur et vos procédures d'authentification avec le service d'authentification Multi-Pass ? Avec MPAS, vous dotez vos employés d'un processus d'authentification qui conserve les identifiants hors ligne, à l'intérieur d'une carte à puce biométrique. Cela signifie que seule la personne inscrite avec les données biométriques peut accéder aux services en toute confiance, ce qui assure un niveau de sécurité inégalé.
Entrez dans un monde où le fardeau de mémoriser et de gérer de multiples identifiants cède la place à des solutions qui offrent simultanément une sécurité accrue et une meilleure expérience utilisateur.
Si vous souhaitez discuter davantage de la façon dont KZero Passwordless peut aider votre entreprise à y parvenir sans heurts, communiquez avec nous.
Thierry Gagnon
Thierry est cofondateur et directeur de la technologie de KZero Passwordless, ainsi que l'un des plus grands experts mondiaux des réseaux de partage sécurisé de l'information. Fort d'une expertise en développement de systèmes automatisés, en bases de connaissances cybernétiques, en analyse de maliciels et rétro-ingénierie ainsi qu'en renseignement sur les cybermenaces, nous lui sommes reconnaissants de...