Qu'est-ce que le Security Assertion Markup Language (SAML) ?

Le Security Assertion Markup Language (SAML) est une norme ouverte basée sur XML qui permet à un fournisseur d’identité (IdP) de transmettre en toute sécurité les données d’authentification et d’autorisation d’un utilisateur à un fournisseur de services (SP). En termes simples, le SAML est l’une des principales technologies qui permet aux utilisateurs de se connecter une seule fois et d’accéder à plusieurs applications sans avoir à saisir de nouveaux identifiants.

À quoi sert le SAML ?

Le SAML est généralement utilisé partout où les utilisateurs ont besoin d’un accès sécurisé et simplifié à plusieurs applications. Les cas d’usage les plus courants sont :

  • Authentification unique (SSO): une seule connexion donne accès à plusieurs applications, éliminant ainsi la nécessité de saisir à nouveau les identifiants pour chaque service.
  • Identité fédérée : le SAML permet à une organisation de faire confiance aux identités émises par un partenaire ou une société mère, permettant ainsi aux utilisateurs d’un domaine de confiance d’accéder sans avoir besoin de comptes séparés.
  • Gestion des accès en entreprise: les équipes informatiques obtiennent un contrôle central sur qui peut accéder à quelles applications en acheminant les connexions via un seul IdP, contribuant à faire respecter des politiques cohérentes comme l’authentification multifacteur (MFA) partout à la fois.

Dans chaque cas d’usage, l’IdP émet une assertion XML signée qui se transmet au SP via le navigateur de l’utilisateur, ce qui permet à l’utilisateur de transférer les données d’authentification en toute sécurité sans que l’utilisateur ait besoin de se reconnecter.

Composants clés du SAML

Les échanges SAML impliquent généralement la collaboration de plusieurs pièces. Voici quelques termes clés qui facilitent grandement le suivi du processus d’authentification :

  • Principal (sujet) : l’utilisateur authentifié, principalement une personne cherchant à atteindre une application spécifique.
  • Fournisseur d’identité (IdP) : le système qui vérifie l’utilisateur et diffuse l’assertion, comme Microsoft Entra ID ou Okta, permettant la connexion réelle.
  • Fournisseur de services (SP) : l’application ou le site web que l’utilisateur souhaite atteindre, en s’appuyant sur l'IdP pour confirmer l’identité de l’utilisateur plutôt que de gérer les identifiants de connexion.
  • Assertion SAML : l’instruction XML signée que l’IdP envoie au SP, transportant l’identité et les données d’autorisation de l’utilisateur (voir plus ci-dessous).
  • Métadonnées : la configuration que les deux parties échangent à l’avance — terminal, certificats, etc. — pour démontrer que l'IdP et le SP savent comment se faire confiance et communiquer mutuellement.
  • Certificat de signature : le certificat numérique contenant la clé publique que le SP utilise pour vérifier la signature de l’assertion, établissant la confiance entre le SP et l’IdP pour confirmer que l’assertion n’a pas été modifiée en transit.

Comment fonctionne l’authentification SAML ?

L’authentification SAML fonctionne en transmettant une assertion signée de l’IdP au SP, confirmant que l’utilisateur est bien celui qu’il prétend être. Le flux initié par le SP est la version la plus courante de l’authentification SAML et commence lorsque l’utilisateur navigue vers le site web ou l’application qu’il souhaite utiliser. Si l’application dépend d’un IdP externe pour la connexion, elle redirige le navigateur de l’utilisateur vers l’IdP via une demande d’authentification SAML. L’IdP vérifie alors les identifiants de l’utilisateur pour l’authentifier ; si l’utilisateur a déjà une session active, cette étape est sautée. Une fois l’IdP satisfait, il génère une assertion signée et la renvoie via le navigateur vers le SP. Enfin, le SP valide la signature de l’assertion, lui fait confiance et laisse entrer l’utilisateur sans qu’aucune connexion séparée ne soit nécessaire. Bien que l’authentification initiée par le SP soit la plus courante pour le SAML, il existe aussi un flux initié par l'IdP, où l’utilisateur commence par l'IdP à la place, par exemple en cliquant sur une tuile d’application sur un tableau de bord de l’entreprise.

Qu’est-ce qu’une assertion SAML ?

Une assertion SAML est le document XML signé que l’IdP envoie au SP pour garantir la faveur d’un utilisateur. Chaque assertion peut contenir une ou plusieurs affirmations, qui sont les informations réelles que le SP utilise pour décider si l’utilisateur doit obtenir l’accès ou non. Il existe trois types d’énoncés :

  • Les instructions d’authentification confirment qui est l’utilisateur, quand il s’est connecté et comment (c’est-à-dire si la MFA a été utilisée).
  • Les instructions attributs contiennent des informations supplémentaires sur l’utilisateur, telles que son rôle ou son département. Le SP peut utiliser ces attributs pour décider ce que l’utilisateur peut voir ou faire.
  • Les déclarations de décision d’autorisation indiquent si l’utilisateur obtient l’accès à une certaine ressource. Ce type d’instruction est rarement utilisé car des autorisations plus complexes sont généralement gérées par l'eXtensible Access Control Markup Language (XACML).

SAML vs autres normes d’authentification

Le SAML est souvent associé à d’autres protocoles d’identité et d’accès qui effectuent des tâches connexes mais distinctes. Le principal objectif du SAML est de gérer l’authentification, de prouver qui est un utilisateur et s’il est autorisé à accéder à un site web ou à une application. C’est son authentification qui le distingue d’OAuth, un protocole d’autorisation qui accorde à une application la permission d’accéder à des ressources spécifiques. SAML et OAuth sont complémentaires plutôt que concurrents, SAML confirmant l’identité et OAuth accordant l’accès.

OpenID Connect (OIDC) est plus proche du SAML puisque les utilisateurs authentifient et activent le SSO. Cependant, OIDC est une couche d’authentification construite sur OAuth qui utilise des jetons web JSON (JWT) adaptés aux applications web et mobiles modernes, tandis que l’approche XML de SAML reste largement utilisée pour les SSO web d’entreprise, bien que l’OIDC devienne de plus en plus la norme pour les nouvelles applications. En comparaison, le Lightweight Directory Access Protocol (LDAP) est un ancien protocole d’annuaire qui précède le cloud et est conçu pour les environnements sur site. Au lieu de concurrencer le SAML, LDAP se situe souvent derrière un IdP SAML comme source d’identifiants utilisateur.

SAMLOAuthOIDCLDAP
Ce que ça faitAuthentification et SSOL'autorisationAuthentification (sur OAuth)Accès à l’annuaire
FormatAssertion XML signéeJetons d’accèsJWTRequêtes d’annuaire
Mieux adapté àSSO pour applications web d'entrepriseAccès délégué à l’APIApplications mobiles et cloud-nativeAnnuaires sur site

SAML

Ce que ça faitAuthentification et SSO
FormatAssertion XML signée
Mieux adapté àSSO pour applications web d'entreprise

OAuth

Ce que ça faitL'autorisation
FormatJetons d’accès
Mieux adapté àAccès délégué à l’API

OIDC

Ce que ça faitAuthentification (sur OAuth)
FormatJWT
Mieux adapté àApplications mobiles et cloud-native

LDAP

Ce que ça faitAccès à l’annuaire
FormatRequêtes d’annuaire
Mieux adapté àAnnuaires sur site

Avantages et inconvénients du SAML

Le SAML offre simultanément de nombreux avantages et compromis à comprendre avant son adoption.

Avantages du SAML

Le plus grand avantage du SARM est qu’il minimise le nombre de mots de passe que les utilisateurs doivent gérer. Grâce à un identifiant unique donnant accès à plusieurs applications, les utilisateurs ont moins d'identifiants à mémoriser, ce qui réduit la surface d'attaque ainsi que le risque de vol d'identifiants. Parce que l’authentification se déroule sur un seul IdP, les organisations bénéficient également d’un contrôle centralisé des politiques ; les équipes de sécurité peuvent appliquer la MFA de manière cohérente sur chaque application connectée depuis un seul endroit. Cette centralisation porte ses fruits, réduisant les coûts du support technique en diminuant les demandes de réinitialisation de mot de passe qui submergent généralement le support informatique.

Inconvénients du SAML

Les avantages du SAML ne se manifestent que lorsque le langage de balisage est correctement configuré. Il repose sur la signature XML et le chiffrement XML pour l’intégrité et la confidentialité des messages, ainsi que TLS pour la sécurité du transport. L’une des vulnérabilités SAML les plus courantes concerne une mauvaise configuration, comme l’absence de validation correcte des signatures. Son modèle basé sur XML est moins flexible que les formats de jetons modernes, rendant le SAML difficile à implémenter pour les applications mobiles et monopage.

Retirer l'autorisation d'utilisation de cookiesNous accordons de l'importance à votre vie privée

Nous utilisons des cookies sur notre site pour vous offrir la meilleure expérience de navigation possible, vous proposer des publicités personnalisées sur nos produits et notre contenu, et analyser le trafic sur le site Web. Pour en savoir plus, veuillez consulter notre politique de confidentialité.

Inscrivez-vous pour bénéficier d'un essai gratuit

Acheter maintenant