Protocole utilisé
Serenest utilise SAML 2.0 (Security Assertion Markup Language) comme standard pour la gestion des intégrations SSO entre les fournisseurs d’identité tiers (IdP) et Serenest (fournisseur de service / SP). L’objectif est de permettre aux utilisateurs connectés à un système tiers (ex. une application d’entreprise) d’accéder aux Webviews Serenest sans avoir à se reconnecter manuellement.Flux SAML détaillé

Clic utilisateur
L’utilisateur clique sur un bouton dans l’application tierce pour accéder à Serenest.
Requête au backend
L’application tierce ouvre un navigateur interne et envoie une requête à son propre backend avec le token d’authentification de l’utilisateur et l’URL de destination souhaitée (paramètre
url).Génération de la réponse SAML
Le backend tiers génère une réponse SAML, l’encode en base64 et effectue une requête POST vers l’URL ACS de Serenest.
Vérification par Serenest
Serenest décode et vérifie la signature SAML (via le certificat
.crt fourni).URLs ACS
| Environnement | URL |
|---|---|
| Pré-production | https://preprod.app.serenest.fr/api/auth/sso/serenest/acs |
| Production | https://app.serenest.fr/api/auth/sso/serenest/acs |
Structure de la SAMLResponse
Le payload de la SAMLResponse doit contenir les champs suivants :| Champ SAML | Description | Requis |
|---|---|---|
emailaddress | Adresse email de l’utilisateur | Oui |
givenname | Prénom | Oui |
surname | Nom de famille | Oui |
name | Nom complet | Oui |
nameidentifier | UUID du site tiers (lié à l’utilisateur) | Oui |
badgenumber | Numéro de badge | Optionnel |
destination | URL cible dans Serenest (ex. /menus) | Oui |
SAMLResponse contenant le XML encodé en Base64.
Certificats et sécurité
Le tiers doit fournir à Serenest :- Un certificat X.509 (
.crt) - Une clé publique (
.pub)
- Authentifier la source de la requête SAML
- Valider la signature de la réponse
- Optionnellement générer un fichier de métadonnées IdP
Flux de test
Bonnes pratiques et recommandations
- Vérifier la période de validité de la réponse SAML (via
NotOnOrAfter). - En cas d’erreur, fournir des logs incluant :
- L’horodatage de la requête
- L’ID de la réponse SAML
- L’adresse email de l’utilisateur