Configurer SAML 2.0 avec Auth0 : guide complet pour l'entreprise
SAML 2.0 reste le standard dominant en entreprise pour la fédération d'identité. Apprenez à configurer Auth0 comme SP et comme IdP, les métadonnées XML, et les assertions.
Par Auth0.Expert · 2025-01-20 · 16 min de lecture
SAML 2.0 avec Auth0 : guide enterprise
TL;DR
SAML 2.0 est le protocole SSO dominant dans les grandes entreprises (Salesforce, Workday, SAP). Auth0 joue à la fois le rôle de Service Provider (SP) et d'Identity Provider (IdP). Ce guide couvre les deux sens.
---
Pourquoi SAML persiste en entreprise
Avant d'aller plus loin, rappelons pourquoi SAML reste incontournable dans de nombreux environnements IT d'entreprise.
- Active Directory Federation Services (ADFS) supporte SAML nativement
- Les vieux outils ERP (SAP, Oracle) ne supportent pas OAuth2
- Certains contrats IT imposent SAML pour la conformité
- Pas de clé secrète à gérer — tout repose sur la PKI XML
Point de douleur : 73% des migrations SAML échouent au premier essai à cause des métadonnées mal configurées. Les erreurs les plus communes :
AudienceRestrictionincorrecte- Décalage d'horloge > 5 minutes → assertion rejetée
- Mauvais
NameID Format
---
Auth0 comme Service Provider (SP)
Dans cette section, nous voyons comment intégrer Auth0 avec une source d'identité tierce via SAML.
Scénario : vos utilisateurs ont un compte Azure AD / Okta / ADFS et veulent se connecter à votre app via Auth0.
1. Créer une connexion SAML dans Auth0
Ce bloc montre comment configurer une nouvelle connexion SAML sur le dashboard Auth0 en précisant l'endpoint, le certificat, et le mapping des champs utilisateur.
// Dashboard → Connections → Enterprise → SAML
{
"signInEndpoint": "https://login.microsoftonline.com/TENANT_ID/saml2",
"signingCert": "-----BEGIN CERTIFICATE-----
MIIC...
-----END CERTIFICATE-----",
"signRequest": true,
"digestAlgorithm": "sha256",
"signatureAlgorithm": "rsa-sha256",
"fieldsMap": {
"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
"name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
"given_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"
}
}
2. Récupérer les métadonnées Auth0 SP
Ici, vous accédez à l'URL pour télécharger le fichier XML de métadonnées SAML de votre connexion, à remettre à votre fournisseur d'identités (IdP).
https://YOUR_DOMAIN.auth0.com/samlp/metadata?connection=SAML_CONNECTION_NAME
Fournissez ce XML à votre IdP externe pour la configuration.
3. Tester l'assertion SAML
Ce snippet permet de décoder une assertion SAML encodée en Base64 pour l'analyser facilement lors des tests.
# Décoder une assertion SAML Base64
echo "PHNhbWxwOlJlc3BvbnNlIC..." | base64 -d | xmllint --format -
---
Auth0 comme Identity Provider (IdP)
Voyons maintenant comment Auth0 peut émettre lui-même des assertions SAML pour des applications externes.
Scénario : une application tierce (Salesforce, Zendesk) veut utiliser Auth0 comme source de vérité.
1. Activer SAML addon dans Auth0
Ce code illustre la configuration du plugin SAML2 Web App dans Auth0, avec les paramètres d’audience, de recipient, le mapping des attributs SAML et le format du NameID.
{
"audience": "https://saml.salesforce.com",
"recipient": "https://login.salesforce.com/sso/saml/login",
"mappings": {
"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
"given_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
"family_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"
},
"nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"nameIdentifierProbes": ["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"]
}
Cette configuration permet d'adapter Auth0 au besoin de chaque application entreprise.
2. URL IdP Auth0
Les URLs ci-dessous servent au paramétrage SAML de l'application cible, pour pointer vers Auth0 comme IdP.
SSO URL: https://YOUR_DOMAIN.auth0.com/samlp/APPLICATION_CLIENT_ID
Metadata: https://YOUR_DOMAIN.auth0.com/samlp/metadata/APPLICATION_CLIENT_ID
---
Anatomie d'une assertion SAML
Ce bloc montre la structure XML d'une réponse SAML typique, avec les éléments clés comme le subject, l'audience, la condition de validité, et les attributs.
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="_abc123" Version="2.0"
IssueInstant="2025-01-20T10:00:00Z"
Destination="https://app.example.com/callback">
<saml:Issuer>https://YOUR_DOMAIN.auth0.com/</saml:Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
[email protected]
</saml:NameID>
</saml:Subject>
<saml:Conditions NotBefore="2025-01-20T09:55:00Z" NotOnOrAfter="2025-01-20T10:05:00Z">
<saml:AudienceRestriction>
<saml:Audience>https://saml.salesforce.com</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AttributeStatement>
<saml:Attribute Name="email">
<saml:AttributeValue>[email protected]</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
Ce code détaille l’échange d’identité sécurisé SAML du login à l’attribution des droits.
---
Tableau des erreurs SAML fréquentes
Voici un tableau récapitulatif des erreurs SAML les plus courantes, pour vous aider à diagnostiquer rapidement les problèmes lors de l’intégration ou de la migration.
| Erreur | Cause probable | Solution | |--------|---------------|----------| | InResponseTo mismatch | Requête expirée | Réduire le timeout session | | Audience Invalid | Mauvaise SP Entity ID | Vérifier audience dans Auth0 | | Signature verification failed | Mauvais certificat | Reimporter le certificat IdP | | NotOnOrAfter in the past | Décalage NTP | Synchroniser les horloges (< 5min) | | NameID format unsupported | Format incompatible | Changer nameIdentifierFormat |
---
Fonctionnalités Auth0 SAML avancées
Cette section met en avant les fonctionnalités avancées offertes par Auth0 pour les intégrations SAML en contexte entreprise.
- SP-Initiated SSO : l'utilisateur part de votre app
- IdP-Initiated SSO : l'utilisateur part du portail Okta/Azure
- SAML Attribute Mapping : transformer les claims entrants
- Certificate Rollover : rotation sans interruption de service
- Encrypted Assertions : chiffrer le contenu de l'assertion
---
Migration ADFS → Auth0 : notre approche
Pour les entreprises migrantes d’ADFS vers Auth0, voici notre méthode structurée assurant sécurité et continuité de service.
Notre équipe a migré des dizaines d'entreprises d'ADFS vers Auth0 avec zéro downtime. Nous fournissons :
- Audit de vos Relying Party Trusts existants
- Migration des attributs et claim rules
- Tests de non-régression automatisés
- Documentation de chaque application migrée
📞 +33 1 23 45 67 89 · 📧 [email protected]
Autres articles
- Auth0 et OAuth 2.0 : architecture complète pour comprendre les flux d'autorisation
- OpenID Connect sur Auth0 : ID Token, UserInfo et discovery endpoint expliqués
- Migrer des Rules vers les Auth0 Actions : guide pas à pas
- Architecture multi-tenant avec Auth0 : organisations, isolation et bonnes pratiques
- Validation des JWT Auth0 : RS256 vs HS256, JWKS et pièges communs
- Concevoir son architecture de tenants Auth0 : dev, staging, prod
- Configurer un domaine personnalisé Auth0 : login.votredomaine.com étape par étape
- Auth0 SDK React : authentification complète avec auth0-react