Explication du langage SAML (Security Assertion Markup Language)
Le langage SAML (Security Assertion Markup Language) est une norme ouverte pour l'échange de données d'authentification et d'autorisation entre les domaines de sécurité. Il permet l'authentification unique (SSO) en permettant aux utilisateurs de s'authentifier une seule fois auprès d'un fournisseur d'identité (IdP) et d'accéder à plusieurs fournisseurs de services (SP) sans avoir à saisir à nouveau leurs informations d'identification.
Le SAML est basé sur XML et est principalement utilisé dans les environnements d'entreprise pour fédérer l'identité entre les applications Web, les plateformes SaaS et les frontières organisationnelles.
La version actuelle, SAML 2.0, a été standardisée par OASIS en 2005 et reste un protocole fondamental pour le SSO d'entreprise basé sur un navigateur.
Principaux composants SAML
Chaque Authentification SAML flux comporte trois rôles principaux :
Utilisateur (Principal)
L'utilisateur final qui tente d'accéder à une application (par exemple, un employé, un partenaire ou un client).
Fournisseur d'identité (IdP)
Système qui authentifie l'utilisateur et émet des assertions de sécurité. Okta, Microsoft Entra ID et Ping Identity en sont des exemples.
Lisez notre article de glossaire sur l'IdP.
Fournisseur de services (SP)
L'application ou le service auquel l'utilisateur souhaite accéder. Le SP s'appuie sur l'IdP pour vérifier l'identité de l'utilisateur.
Termes clés SAML
Assertion SAML
Document XML signé numériquement, émis par l'IdP, contenant des déclarations sur un utilisateur authentifié.
Réponse SAML
Message envoyé par l'IdP au SP contenant une ou plusieurs assertions.
Requête SAML (demande d'authentification)
Demande générée par le SP invitant l'IdP à authentifier l'utilisateur.
Métadonnées SAML
Données de configuration échangées entre l'IdP et le SP pour établir une relation de confiance. Elles incluent les clés publiques, les identifiants d'entité et les URL des points de terminaison.
Jeton SAML
Terme informel souvent utilisé comme synonyme d'« assertion SAML ».
Qu'est-ce que le SSO dans le contexte du SAML ?
L'authentification unique (SSO) permet aux utilisateurs de se connecter une seule fois pour accéder à plusieurs applications sans avoir à saisir à nouveau leurs identifiants.
Avec le SSO basé sur SAML :
- L'utilisateur s'authentifie auprès du fournisseur d'identité.
- L'IdP envoie une assertion signée au fournisseur de services.
- Le SP valide l'assertion et autorise l'accès.
Les utilisateurs saisissent leurs identifiants uniquement auprès de l'IdP. Les applications ne gèrent jamais directement les mots de passe, ce qui réduit l'exposition des identifiants et centralise le contrôle de l'authentification.
Fonctionnement de SAML (flux de haut niveau)
SAML utilise le navigateur comme intermédiaire pour échanger des messages entre l'IdP et le SP via des liaisons HTTP Redirect ou HTTP POST.
Il existe deux flux SAML courants :
1. Flux initié par le SP
Ce processus commence lorsqu'un utilisateur tente d'accéder directement à une application.
- L'utilisateur accède au SP.
- Le SP ne détecte aucune session active et envoie une demande d'authentification SAML à l'IdP.
- L'IdP authentifie l'utilisateur.
- L'IdP émet une assertion SAML signée.
- L'assertion est renvoyée au SP via le navigateur.
- Le SP valide l'assertion et crée une session.
Il s'agit du modèle de SSO d'entreprise le plus courant.
2. Flux initié par l'IdP
Ce processus commence sur le portail du fournisseur d'identité.
- L'utilisateur se connecte au tableau de bord de l'IdP.
- L'utilisateur sélectionne une application.
- L'IdP envoie une assertion SAML directement au SP.
- Le SP valide l'assertion et établit une session.
Cette approche est courante lorsque les organisations proposent des portails d'applications centralisés.
Qu'est-ce qu'une assertion SAML ?
Une assertion SAML est une instruction XML structurée émise par le fournisseur d'identité qui transmet des informations de sécurité concernant un utilisateur.
SAML 2.0 définit trois types d'instructions :
Déclaration d'authentification
Confirme que l'utilisateur s'est authentifié avec succès, y compris la méthode d'authentification et l'horodatage.
Déclaration d'attribut
Contient des attributs utilisateur tels que l'adresse e-mail, le service, le rôle ou l'appartenance à un groupe.
Déclaration de décision d'autorisation
Indique si un utilisateur est autorisé à effectuer une action spécifique (moins couramment utilisée).
Les assertions incluent également des éléments de validation :
- Émetteur : l'IdP qui a créé l'assertion
- Public : le fournisseur de services prévu
- Conditions — Restrictions d'utilisation et protections contre les rediffusions
- Heure d'émission et expiration — Limites temporelles limitant la validité
Les assertions sont signées numériquement pour garantir leur intégrité. De nombreuses implémentations les chiffrent également pour protéger les attributs sensibles.
Authentification et autorisation SAML
Il est essentiel de comprendre cette distinction.
Authentification SAML
Vérifie l'identité. L'IdP confirme « Qui est cet utilisateur ? » et émet une assertion d'authentification.
Autorisation SAML
Détermine les autorisations. Le fournisseur de services (SP) décide « À quoi cet utilisateur peut-il accéder ? » en fonction des attributs, des rôles et des politiques internes.
SAML gère principalement l'authentification et le partage d'attributs. La logique d'autorisation détaillée reste généralement au sein du fournisseur de services ou d'un système de gestion des accès.
Comment configurer l'authentification SAML
Qu'est-ce que SAML 2.0 ?
SAML 2.0 est la version majeure actuelle de la norme. Elle a consolidé les spécifications SAML et les profils de fédération d'identité antérieurs dans un cadre complet pour le SSO basé sur un navigateur.
Les fonctionnalités clés incluent :
- SSO basé sur le Web
- Déconnexion unique (SLO)
- Échange de métadonnées normalisé
- Fédération d'attributs
- Fédération d'identités interdomaines
SAML 2.0 reste largement pris en charge par les fournisseurs SaaS d'entreprise et les systèmes gouvernementaux.
Cas d'utilisation courants
SAML est principalement utilisé dans les environnements d'entreprise et institutionnels :
SSO pour les effectifs
Les employés accèdent à plusieurs applications SaaS et internes via un identifiant d'entreprise unique.
Fédération B2B
Les partenaires externes s'authentifient à l'aide de leur propre IdP pour accéder aux systèmes partagés.
Fédération de l'identité gouvernementale
Les agences établissent des relations de confiance pour permettre un accès interservices.
Éducation
Les étudiants et les professeurs s'authentifient une seule fois pour accéder aux systèmes académiques, aux e-mails et aux portails administratifs.
Avantages du protocole SAML en matière de sécurité
SAML centralise l'authentification auprès du fournisseur d'identité, ce qui présente plusieurs avantages :
- Les mots de passe ne sont jamais partagés avec les fournisseurs de services
- L'authentification multifacteur (MFA) peut être appliquée de manière centralisée
- Les politiques d'accès conditionnel peuvent s'appliquer à toutes les applications
- Les signatures cryptographiques empêchent la falsification des assertions
- Les assertions limitées dans le temps réduisent le risque d'attaque par rediffusion
Étant donné que l'authentification s'effectue auprès d'un IdP de confiance, les fournisseurs de services compromis n'exposent pas les informations d'identification des utilisateurs.
SAML et normes associées
SAML est l'une des nombreuses normes de fédération d'identité et d'autorisation.
SAML contre OpenID Connect (OIDC)
- SAML utilise XML et est optimisé pour le SSO Web d'entreprise.
- OIDC utilise JSON et s'appuie sur OAuth 2.0, souvent privilégié pour les applications web et mobiles modernes.
SAML vs OAuth 2.0
- SAML se concentre sur l'authentification et la fédération d'identités.
- OAuth 2.0 se concentre sur l'autorisation déléguée (permettant aux applications d'accéder à des ressources pour le compte d'un utilisateur).
SAML vs LDAP
- LDAP est un protocole d'annuaire utilisé pour stocker et récupérer des données utilisateur.
- SAML est un protocole de fédération pour le SSO basé sur le web.
Dans de nombreuses architectures, un IdP authentifie les utilisateurs via LDAP ou Active Directory, puis émet des assertions SAML pour les applications cloud.







