Cyber Security Academy · Leçon

SAML et fédération

Authentification unique en entreprise.

Leçon 3 sur 413 étapes

SAML et fédération est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.

Ce qu’est SAML

SAML (langage de balisage des assertions de sécurité) est une norme fondée sur XML pour l’échange de données d’authentification et d’autorisation, dominante dans le SSO d’entreprise.

  • Elle permet à un fournisseur d’identité d’entreprise d’attester l’identité d’un utilisateur auprès de nombreuses applications.
  • SAML 2.0 est antérieur à OIDC et reste profondément implanté dans les identités B2B et professionnelles.

Comprendre SAML est essentiel pour sécuriser la fédération d’entreprise, où une seule faille de confiance peut exposer toutes les applications connectées.

Rôles de l’IdP et du SP

La fédération SAML repose sur deux parties principales.

  • Le fournisseur d’identité (IdP) authentifie l’utilisateur et émet des assertions (Okta, Entra ID, Ping).
  • Le fournisseur de services (SP) est l’application qui fait confiance à l’IdP et accorde l’accès.

La confiance est établie hors bande par échange de métadonnées, notamment les certificats de signature et les URL des points de terminaison.

IdP  -> authenticates user, signs assertion
SP   -> consumes assertion, grants access
Metadata exchange establishes trust (certs, ACS URLs)

L’assertion SAML

L’élément central est l’assertion, un document XML indiquant que l’IdP a authentifié un sujet.

  • Le sujet identifie l’utilisateur (NameID).
  • Les conditions définissent la période de validité et l’audience prévue.
  • AuthnStatement consigne comment et quand l’authentification a eu lieu.
  • AttributeStatement contient les rôles, l’adresse e-mail et les revendications de groupe.
<saml:Assertion>
  <saml:Subject><saml:NameID>user@corp</saml:NameID></saml:Subject>
  <saml:Conditions NotOnOrAfter="2026-06-04T10:05:00Z"
     AudienceRestriction="https://sp.example"/>
  <saml:AuthnStatement .../>
</saml:Assertion>

Flux SSO initié par le SP

Le schéma le plus courant est le SSO initié par le SP.

  • L’utilisateur accède au SP, qui génère une AuthnRequest et redirige l’utilisateur vers l’IdP.
  • L’IdP authentifie l’utilisateur et envoie par POST une Response signée au service consommateur d’assertions (ACS) du SP.
  • Le SP valide l’assertion et crée une session locale.
1. SP -> AuthnRequest -> IdP (redirect)
2. user authenticates at IdP
3. IdP -> signed SAMLResponse -> SP ACS (HTTP POST)
4. SP validates -> session

Les signatures XML ancrent la confiance

La sécurité de SAML repose sur les signatures numériques XML. L’IdP signe l’assertion (et/ou la réponse) avec sa clé privée ; le SP vérifie la signature avec le certificat de confiance.

  • Signez l’assertion elle-même, et pas seulement la réponse englobante.
  • Vérifiez la signature avec un certificat d’IdP épinglé provenant des métadonnées, et non avec un certificat intégré au message.

La plupart des attaques SAML ciblent la logique de validation des signatures.

Enveloppement de signature XML (XSW)

L’enveloppement de signature XML est la catégorie d’attaque par signature propre à SAML. L’attaquant conserve un élément correctement signé, mais ajoute une seconde assertion falsifiée que la logique de l’application lit effectivement.

  • La signature reste valide pour le fragment original.
  • Mais la logique métier traite l’assertion injectée et non signée.

Mesures d’atténuation : utilisez une bibliothèque SAML renforcée, vérifiez que l’élément signé est bien celui qui est traité et rejetez les documents comportant plusieurs assertions ou des assertions ambiguës.

Document after XSW:
  <Response>
    <Assertion id="evil">attacker claims</Assertion>  // read by app
    <Assertion id="orig" SIGNED>real user</Assertion>  // sig valid here
  </Response>

Restrictions d’audience et de destinataire

Une assertion doit être liée au SP prévu. SAML fournit des restrictions explicites.

  • AudienceRestriction désigne l’ID d’entité du SP pour lequel l’assertion est valide.
  • Le destinataire dans SubjectConfirmation doit correspondre à l’URL de l’ACS.

Le SP doit faire respecter ces restrictions. Omettre la vérification de l’audience permet de rejouer auprès d’une autre application une assertion émise pour une première application.

Protections contre le rejeu et les problèmes temporels

Les assertions sont des identifiants à courte durée de vie et à usage unique. Les SP doivent faire respecter cette règle.

  • Respectez NotBefore et NotOnOrAfter avec une dérive d’horloge très faible.
  • Suivez l’ID de l’assertion et rejetez toute réutilisation pendant la période de validité.
  • Exigez TLS sur le point de terminaison de l’ACS.

Sans suivi des rejeux, une assertion interceptée peut être soumise à nouveau avant son expiration.

SP checks:
  now in [NotBefore, NotOnOrAfter]  (+- small skew)
  assertion.ID not seen before -> store + reject reuse

Fédération et chaînes de confiance

La fédération étend le SSO au-delà des frontières organisationnelles, parfois au moyen de concentrateurs ou de courtiers qui assurent la traduction entre les protocoles.

  • Chaque lien de confiance constitue un point faible potentiel ; un IdP compromis peut usurper l'identité de chaque utilisateur.
  • Les courtiers d'identité peuvent faire le lien entre SAML et OIDC, ce qui exige une correspondance rigoureuse des revendications.

Appliquez le principe du moindre privilège au mappage des attributs et surveillez l'apparition inattendue de nouveaux enregistrements de SP.

Faiblesses courantes de SAML

Voici des modes de défaillance SAML récurrents qu'il convient d'auditer :

  • La signature n'est pas vérifiée, ou la réponse est signée mais pas l'assertion.
  • Le système est vulnérable à l'attaque par enveloppement de signature XML.
  • Les vérifications de l'audience et du destinataire sont absentes.
  • Aucune protection contre la relecture, ou des périodes de validité excessivement longues.
  • Analyse des entités externes XML (XXE) sur le SP.
  • Le certificat intégré au message est considéré comme fiable au lieu d'utiliser des métadonnées épinglées.
Disable external entities in the XML parser:
  parser.setFeature(
    "http://apache.org/xml/features/disallow-doctype-decl", true)

SAML ou OIDC

Les deux fournissent le SSO, mais leur conception diffère.

  • SAML XML, liaisons POST/redirection du navigateur, très répandu dans les environnements d'entreprise et professionnels, outils éprouvés.
  • OIDC JSON/JWT, adapté à REST, mieux adapté aux appareils mobiles et aux applications monopages.

De nombreuses organisations utilisent les deux. Les défenseurs doivent connaître les règles de validation des assertions du protocole utilisé par chaque application, car la surface d'attaque diffère.

Vérification rapide : neutraliser XSW

Sélectionnez la meilleure défense contre l'attaque décrite.

Récapitulatif : SAML et fédération

Points essentiels :

  • SAML est un SSO d'entreprise fondé sur XML, entre un IdP et un SP, au moyen d'assertions signées.
  • La sécurité dépend de la validation correcte de la signature XML par rapport à un certificat épinglé.
  • Protégez-vous contre l'enveloppement de signature XML, la relecture et les attaques XXE.
  • Appliquez toujours les restrictions d'audience et de destinataire ainsi que les périodes de validité.
  • La fédération étend la confiance, mais amplifie le rayon d'impact d'un IdP compromis.
Gratuit pour commencer

Apprends Cyber Security Academy avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
76
Leçons
303

Questions Fréquemment Posées

La leçon « SAML et fédération » est-elle gratuite ?

Oui — le texte complet de « SAML et fédération » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « SAML et fédération » ?

Authentification unique en entreprise. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?

Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « SAML et fédération » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?

Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Flux OAuth 2.0
  2. OpenID Connect (OIDC)
  3. SAML et fédération
  4. Attaques contre les jetons et renforcement
← Retour à Cyber Security Academy