Capacité

Fédération d'identité SAML 2.0

Connexion SAML 2.0 conforme aux standards aux IdP d'entreprise et aux fédérations d'identité du secteur public.

De nombreuses organisations utilisent déjà un fournisseur d'identité SAML 2.0 comme AD FS, Entra ID, Okta, Ping, Auth0 ou une fédération d'identité du secteur public. TR7 AAM agit comme fournisseur de services SAML 2.0 devant les applications et se connecte à l'infrastructure d'identité d'entreprise existante au lieu de créer une nouvelle base d'utilisateurs. L'utilisateur est redirigé vers l'IdP configuré ; l'authentification et, le cas échéant, les contrôles MFA sont effectués sur l'IdP de l'organisation. Ensuite, la réponse SAML signée revient à AAM. AAM vérifie la signature, l'application cible, la durée de validité et les conditions de sécurité de cette réponse ; il extrait l'identité de l'utilisateur et crée sa propre session d'accès. Cette session fonctionne ensuite avec les couches AAM comme l'accès conditionnel, la confiance de l'appareil, la MFA supplémentaire, la redirection SSO et le SSO Backend. Une seule passerelle AAM peut router différentes applications ou différents tenants vers des IdP distincts. Résultat : l'utilisateur se connecte une fois avec l'identité de l'organisation ; AAM vérifie l'identité de manière conforme aux standards, la place sous audit et la transmet en toute sécurité aux applications backend.

SAML 2.0
Fournisseur de services conforme aux standards : AuthnRequest signée, réponse SAML vérifiée, contrôle d'audience et de validité.
2 bindings
HTTP-Redirect pour l'AuthnRequest, HTTP-POST pour l'ACS.
IdP par tenant
Multi-tenant sur une seule passerelle, un fournisseur d'identité distinct par tenant.

SAML reste l'un des standards principaux de l'identité d'entreprise — mais il est facile de le mal implémenter

Bien qu'OIDC soit de plus en plus utilisé dans les applications modernes, SAML 2.0 reste un standard critique dans les intégrations d'identité d'entreprise et du secteur public. De nombreuses organisations exploitent leurs répertoires existants derrière AD FS, Entra ID, Okta, Ping, Auth0 ou une passerelle de fédération via SAML. Du côté public également, les fédérations d'identité nationales et les services SaaS qui leur sont rattachés reposent souvent sur SAML 2.0.

C'est pourquoi, pour une application nouvelle ou modernisée, la bonne approche n'est pas de créer une base d'utilisateurs distincte. L'application doit se connecter au fournisseur d'identité auquel l'organisation fait déjà confiance. Pour cela, la couche d'accès doit se comporter comme un fournisseur de services SAML 2.0 : elle doit rediriger l'utilisateur vers le bon IdP, vérifier la réponse SAML entrante, extraire l'identité en toute sécurité et la convertir en une session utilisable par l'application.

Mais l'intégration SAML n'est pas seulement une affaire de « prendre le XML, lire l'utilisateur, ouvrir une session ». Mal implémentée, elle produit de graves failles de sécurité. La signature de la réponse SAML doit être vérifiée correctement, il faut contrôler quel élément a réellement été signé et empêcher les attaques comme le retrait de signature ou l'injection d'assertions falsifiées. La durée de validité, la restriction d'audience, l'information d'issuer, le format du NameID et les mappings d'attributs ne doivent pas seulement être lus ; ils doivent être strictement appliqués.

Le côté opérationnel est tout aussi important. La mise à jour des métadonnées de l'IdP, la rotation des certificats et des clés de signature, le routage IdP différent par tenant, les règles de mapping différentes pour différentes applications et les flux de Single Logout ne sont pas de petits détails ajoutés après coup. Ce sont des éléments fondamentaux pour que la fédération SAML fonctionne de manière sûre et durable.

L'une des erreurs les plus courantes consiste à embarquer une bibliothèque SAML séparément dans chaque application. Cette approche distribue la responsabilité de l'identité à chaque backend. Un changement d'IdP nécessite une mise à jour distincte dans de nombreuses applications. La MFA, l'accès conditionnel, la confiance de l'appareil, le comportement de déconnexion et les journaux d'audit sont résolus à nouveau pour chaque application. Le résultat n'est pas une identité centralisée, mais une confusion d'identité distribuée.

Le bon endroit est la périphérie d'accès. SAML doit être terminé en un seul point ; il doit être géré dans la même couche que l'authentification, la MFA, l'accès conditionnel, la confiance de l'appareil et le SSO Backend. Ainsi les applications ne portent pas la complexité du protocole de fédération ; elles reçoivent seulement une identité vérifiée, propre et fiable.

Bien gérer SAML ne se résume pas à se connecter à un IdP. Il s'agit de vérifier, d'auditer la confiance d'identité de l'organisation en un seul point et de la transmettre en toute sécurité aux applications.

Notre approche

Une seule passerelle AAM termine SAML correctement à la périphérie ; le reste du moteur d'accès repose dessus.

Fournisseur de services SAML 2.0 conforme aux standards

AuthnRequest signée en sortie, vérification complète de l'assertion en entrée — signature, audience, fenêtre de validité, AudienceRestriction, format du NameID. Les bindings HTTP-Redirect et HTTP-POST sont tous deux pris en charge. Le traitement de la signature suit les règles de conformité SAML 2.0 existantes pour déjouer les attaques SAML connues.

Routage IdP par application et par tenant

Une seule passerelle AAM peut router simultanément différentes applications vers différents IdP, et différents tenants de la même application vers différents IdP. La sélection de l'IdP se fait par requête à partir du contexte de l'application — pas de passerelle distincte par IdP, pas de sélecteur de page de connexion manuel pour l'utilisateur.

Mapping du NameID et des attributs — vers l'identifiant de session AAM

Les règles de mapping par IdP convertissent le NameID et les déclarations d'attributs de l'assertion SAML vers les champs canoniques utilisés par le reste d'AAM — nom d'utilisateur, e-mail, groupes, nom d'affichage, attributs personnalisés. Le même mapping alimente le gating MFA, les expressions d'accès conditionnel, les journaux d'audit et les injections SSO Backend.

Coordonné avec MFA, accès conditionnel, confiance de l'appareil et SSO Backend

Une authentification SAML ne fonctionne pas seule — elle est composée avec la MFA en périphérie (si l'IdP n'a pas appliqué de step-up), les expressions d'accès conditionnel, l'évaluation continue de la confiance et l'injection SSO Backend vers le backend. L'assertion SAML devient une entrée de la session AAM ; elle ne devient pas toute la session.

Capacités

Un SP SAML 2.0 conforme aux standards, plus les fonctionnalités opérationnelles qui rendent la fédération sûre et gérable à grande échelle.

SSO initié par le SP avec AuthnRequest signée

L'utilisateur arrive sur l'application, AAM le redirige vers l'IdP configuré avec une AuthnRequest SAML signée, l'utilisateur se connecte à l'IdP et l'IdP renvoie l'assertion signée à l'endpoint Assertion Consumer Service d'AAM. Les bindings HTTP-Redirect pour la requête sortante et HTTP-POST pour l'assertion entrante sont tous deux pris en charge.

SSO initié par l'IdP sensible au RelayState

Pour les déploiements où le point de départ de l'utilisateur est l'IdP — une rampe de lancement de portail sur l'IdP, un catalogue d'applications, un portail d'identité du secteur public — le SSO initié par l'IdP est accepté. Le RelayState porte la destination d'application visée ; ainsi l'utilisateur atterrit sur la bonne page après la consommation de l'assertion.

Vérification complète de l'assertion — signature, audience, validité, restriction

La signature de l'assertion est vérifiée contre le certificat de signature de l'IdP configuré ; l'audience correspond à l'identifiant du SP AAM configuré ; NotBefore et NotOnOrAfter définissent la fenêtre de validité ; AudienceRestriction est appliquée. Les attaques SAML connues (signature wrapping, signature stripping, dérive NotBefore) sont explicitement déjouées plutôt que tolérées silencieusement.

Chiffrement d'assertion optionnel avec gestion de la clé privée

Lorsque l'IdP chiffre l'assertion (xmlenc), AAM déchiffre l'assertion avec la clé privée du SP configurée avant la vérification. Les assertions chiffrées sont courantes pour la fédération d'identité du secteur public et pour les IdP qui ne veulent pas que le contenu de l'assertion soit lisible au niveau de la couche de binding. Les clés de chiffrement sont stockées de manière chiffrée dans le magasin de configuration et ne sont jamais journalisées.

Sélection du format de NameID et mapping d'attributs par IdP

Chaque IdP peut être configuré avec un format de NameID préféré (persistent, transient, email-address, unspecified) et un mapping des noms d'attributs SAML vers les champs de session AAM. Différents IdP peuvent présenter l'identité différemment — une revendication d'identifiant national, un e-mail, un identifiant opaque unique — et tout de même produire le même format de session canonique d'AAM.

Liaison IdP par tenant pour les déploiements multi-tenant

Une seule passerelle AAM plaçant de nombreux tenants en façade peut router chaque tenant vers son propre IdP. La sélection se fait au moment de la requête à partir du contexte de l'application ou du tenant — pas de passerelle distincte par IdP, pas de sélecteur par utilisateur. La même passerelle peut transporter simultanément la fédération d'identité du secteur public pour un tenant et un IdP d'entreprise privé pour un autre tenant.

Single Logout (SLO) coordonné avec le nettoyage de session AAM

Lorsque l'IdP démarre une déconnexion, AAM accepte le SAML LogoutRequest, termine la session AAM et signale aux backends qui reçoivent l'injection SSO Backend. Lorsque l'application démarre la déconnexion, AAM envoie un LogoutRequest signé vers l'IdP et attend le LogoutResponse avant de déclarer la session terminée. Le SLO front-channel est pris en charge.

Feuille de route — SLO back-channel, profil ECP, bindings holder-of-key

Le Single Logout back-channel basé sur SOAP, le profil SAML ECP (Enhanced Client/Proxy) pour les clients non navigateurs et la confirmation de sujet holder-of-key pour les intégrations à haute sécurité sont sur la feuille de route. L'objet de configuration et le reste du pipeline SP les prennent déjà en charge ; ce qui manque est le code spécifique au protocole.

Profondeur opérationnelle

Les mécanismes qui maintiennent une fédération SAML sûre, à jour et observable.

01

Échange de métadonnées IdP — chargement, récupération par URL ou configuration manuelle

Les métadonnées de l'IdP peuvent être chargées en téléchargeant le XML de métadonnées fourni par l'IdP, en configurant une URL de métadonnées qu'AAM récupère et met en cache, ou en saisissant manuellement les endpoints et les certificats. La configuration manuelle est une option réaliste pour les IdP qui ne publient pas de métadonnées conformes aux standards ; là où elles fonctionnent, les deux autres méthodes sont préférées.

02

Publication des métadonnées SP pour l'onboarding de l'IdP

AAM publie son propre document de métadonnées SP à une URL stable ; ainsi l'opérateur de l'IdP peut l'importer dans le magasin de confiance de l'IdP au lieu de transférer manuellement les endpoints et les certificats. Les métadonnées reflètent la configuration SP active — URL ACS actuelle, certificat de signature actuel, endpoint SLO actuel.

03

Rotation des clés de signature et des certificats sans interruption

Les clés de signature et les certificats du SP ont une durée de vie limitée. AAM prend en charge la rotation des clés avec chevauchement — pendant la fenêtre de rollover, l'ancienne et la nouvelle clé sont vérifiées contre les métadonnées mises en cache de l'IdP. Les opérateurs planifient la rotation à l'avance ; le runtime accepte les deux pendant la période de chevauchement et la rotation entre en service proprement.

04

Tolérance de dérive d'horloge avec fenêtre de drift limitée

Les assertions portent des horodatages NotBefore et NotOnOrAfter. Les vraies horloges dérivent ; AAM applique une fenêtre de tolérance configurable ; ainsi une petite dérive ne rejette pas les assertions valides, tandis qu'une grande dérive (indicateur de mauvaise configuration ou de rejeu) est tout de même rejetée. La tolérance est par IdP ; un IdP bien synchronisé reçoit une fenêtre étroite, un IdP problématique reçoit une permission documentée.

05

Audit et corrélation avec le cycle de vie de la session AAM

Chaque événement SAML — AuthnRequest sortante, assertion entrante, résultat de la vérification de signature, SLO LogoutRequest, LogoutResponse — est enregistré avec un ID de corrélation qui revient à la session AAM, au(x) backend(s) derrière elle et à l'identité de l'utilisateur. La question « qui s'est connecté via quel IdP et quand » se répond avec une seule requête.

06

Feuille de route — rafraîchissement automatique des métadonnées IdP et télémétrie de rotation

Le rafraîchissement automatique périodique des métadonnées de l'IdP depuis l'URL configurée, la détection des différences et l'alerte de l'opérateur en cas de changement de certificat de signature sont sur la feuille de route. La télémétrie de rotation — métriques d'âge des clés, alerte de jours restants avant l'expiration, planification automatique du rollover — est également planifiée.

Quelles équipes l'utilisent

Fédération d'identité du secteur public

Les applications qui doivent accepter un IdP de fédération d'identité nationale — typique des déploiements du secteur public, des secteurs réglementés et des services SaaS sous contrat avec des acheteurs publics. AAM termine la fédération SAML à la périphérie et présente une identité propre et vérifiée à l'application derrière elle.

IdP d'entreprise (AD FS, Entra ID, Okta, Ping, Auth0)

Les IdP d'entreprise existants déjà faisant autorité pour la main-d'œuvre. AAM s'enfiche comme un SP SAML sans demander à l'équipe IdP de changer quoi que ce soit. Les nouvelles applications rejoignent la fédération non pas en ajoutant une nouvelle bibliothèque SAML à chaque base de code, mais en ajoutant un enregistrement dans AAM.

Déploiements multi-tenant avec un IdP par tenant

Des applications SaaS où chaque client apporte son propre IdP. Une seule passerelle AAM place tous les tenants en façade ; le trafic de chaque tenant est routé vers l'IdP de ce tenant. Ajouter un tenant n'est pas un déploiement ; c'est ajouter un enregistrement d'IdP au magasin de configuration.

MFA en périphérie et accès conditionnel par-dessus un IdP qui n'applique pas la MFA ni l'accès conditionnel

Certains IdP authentifient mais n'appliquent pas la MFA step-up ou l'accès conditionnel — en particulier les anciennes passerelles de fédération. AAM accepte l'authentification de l'IdP, puis fait reposer sa propre MFA, ses expressions d'accès conditionnel et son évaluation continue de la confiance par-dessus, avant d'accorder l'accès à l'application.

Questions fréquentes

Avec quels IdP AAM se fédère-t-il ?
Tout IdP SAML 2.0 conforme aux standards. En pratique, cela inclut AD FS, Entra ID (Azure AD), Okta, Ping, Auth0, les répertoires locaux derrière une passerelle de fédération et les IdP de fédération d'identité du secteur public. Ils peuvent être fournis en téléchargeant le XML de métadonnées, en les récupérant depuis une URL de métadonnées ou en les configurant manuellement.
Comment AAM se défend-il contre les attaques SAML connues ?
La signature de l'assertion est vérifiée contre le certificat de signature de l'IdP configuré ; le signature wrapping, le signature stripping et les jeux de namespace sont explicitement déjoués plutôt que tolérés silencieusement. NotBefore et NotOnOrAfter sont appliqués avec une tolérance de dérive d'horloge limitée. AudienceRestriction doit nommer le SP AAM configuré. Les assertions chiffrées ne sont déchiffrées avec la clé privée du SP qu'après le passage des contrôles au niveau du binding.
Une seule passerelle AAM peut-elle router différents tenants ou applications vers différents IdP ?
Oui. La sélection de l'IdP se fait par requête à partir du contexte de l'application ou du tenant. La même passerelle peut router simultanément un tenant vers un IdP de fédération d'identité du secteur public et un autre vers un IdP d'entreprise privé ; chaque tenant reçoit son propre mapping de NameID et d'attributs. Ajouter un tenant n'est pas un déploiement, c'est une modification de configuration.
AAM prend-il en charge le Single Logout (SLO) ?
Le SLO front-channel est pris en charge dans les deux sens — un LogoutRequest initié par l'IdP termine la session AAM et signale aux backends ; une déconnexion initiée par l'application envoie un LogoutRequest signé vers l'IdP et attend le LogoutResponse avant de déclarer la session terminée. Le SLO back-channel basé sur SOAP et le profil SAML ECP sont sur la feuille de route.
Que devient l'identité une fois qu'AAM a consommé l'assertion ?
Le NameID et les attributs configurés sont mappés vers les champs de session canoniques d'AAM (nom d'utilisateur, e-mail, groupes, nom d'affichage, attributs personnalisés). Le reste du moteur d'accès raisonne sur cette session — gating MFA, expressions d'accès conditionnel, évaluation continue de la confiance, injection SSO Backend vers le backend. L'application reçoit l'identité dans le format qu'elle attend via le SSO Backend ; le protocole SAML s'arrête à la périphérie AAM.

SAML correctement, à la périphérie

Connectons AAM à votre IdP — d'entreprise ou de fédération d'identité du secteur public — et faisons reposer le reste du moteur d'accès, avec MFA, accès conditionnel, confiance de l'appareil et SSO Backend, sur l'assertion.