Authentification unique (SSO)
L’authentification unique (SSO – Single Sign-On) permet aux utilisateurs de se connecter à PandaSuite en utilisant leur identité d’entreprise, sans avoir à créer un compte supplémentaire.
PandaSuite prend en charge les protocoles SAML v2 et OpenID Connect (OIDC), utilisés par de nombreux fournisseurs d’identité (IdP) comme Azure AD, Google Workspace, Okta, Auth0, etc.
Le SSO peut être activé à deux endroits :
- Côté éditeur → Pour les utilisateurs accédant à PandaSuite Studio.
- Côté web app → Pour les applications créées avec PandaSuite (Web App / PWA).
Ces deux configurations sont indépendantes. Vous pouvez activer le SSO pour Studio, pour une web app, ou les deux. Pour chaque zone, vous choisissez un protocole (SAML ou OIDC).
Qu’est-ce que le SSO ?
Le Single Sign-On (SSO) est une méthode d’authentification permettant aux utilisateurs de se connecter à plusieurs applications de manière sécurisée avec un seul identifiant.
Pourquoi utiliser SSO ?
- Sécurité renforcée : moins de mots de passe à gérer, réduction du risque de phishing.
- Expérience fluide : connexion transparente sans authentification répétée.
- Gestion centralisée : accès contrôlé par l’administrateur IT via un IdP.
Le protocole SAML v2
SAML (Security Assertion Markup Language) est un standard XML permettant à un fournisseur de services (Service Provider - SP) comme PandaSuite de déléguer l’authentification à un fournisseur d’identité (Identity Provider - IdP).
Le protocole OpenID Connect (OIDC)
OpenID Connect (OIDC) est un protocole moderne basé sur OAuth 2.0. Il permet à un fournisseur de services (comme PandaSuite) de déléguer l’authentification à un fournisseur d’identité et de récupérer des informations d’identité standardisées (claims).
Comment fonctionne le SSO ?
Le SSO repose sur un échange sécurisé de jetons d’authentification entre PandaSuite et votre fournisseur d’identité (IdP).
-
L’utilisateur tente d’accéder à PandaSuite ou à une web app.
-
PandaSuite envoie une demande d’authentification à l’IdP avec un jeton contenant l’email de l’utilisateur.
-
L’IdP vérifie si l’utilisateur est déjà connecté :
- ✅ Si oui, l’accès est accordé immédiatement.
- 🔄 Sinon, il est redirigé vers la page de connexion de son entreprise.
-
L’utilisateur s’authentifie auprès de son IdP (ex: identifiants Microsoft 365, Google, Okta…).
-
L’IdP valide l’identité et renvoie les informations d’authentification à PandaSuite (assertion SAML ou jeton OIDC).
-
PandaSuite les valide et accorde l’accès à l’utilisateur.
Tout se fait en arrière-plan, sans que l’utilisateur ait à saisir un mot de passe sur PandaSuite !
Configurer le SSO pour une web app
Actuellement l’authentification SSO n’est compatible qu’avec les web apps / PWA. Pour une application native, veuillez contacter notre équipe.
-
Récupérer les informations PandaSuite
- Accédez à votre compte PandaSuite
- Rendez-vous dans la section Apps et sélectionnez votre web app
- Rendez-vous dans la partie Sécurité
- Activez le SSO
- Sélectionnez un Protocole (SAML ou OIDC)
PandaSuite vous fournit automatiquement les informations suivantes (selon le protocole sélectionné) :
- SAML
- URL de métadonnées :
https://pandasuite.com/secure/saml/[ID_APP]/metadata - Entity ID :
https://pandasuite.com/launcher/c/[ID_APP] - Assertion Consumer Service URL :
https://pandasuite.com/secure/saml/[ID_APP]/consume
- URL de métadonnées :
- OIDC
- URL de callback :
https://pandasuite.com/secure/oidc/callback
- URL de callback :
-
Configurer votre fournisseur d’identité (IdP)
Utilisez les informations ci-dessus pour configurer votre application PandaSuite dans votre fournisseur d’identité (Azure AD, Google Workspace, Okta, etc.).
-
Finaliser la configuration dans PandaSuite
- Si vous avez sélectionné SAML :
- Dans Type de configuration, choisissez URL dynamique pour renseigner l’URL de métadonnées IdP, ou choisissez Fichier de métadonnées pour importer votre fichier de métadonnées.
- Optionnel : activez Signer les AuthnRequests si votre fournisseur d’identité exige que PandaSuite signe les requêtes d’authentification SAML.
- Optionnel : activez Exiger des assertions signées pour rejeter les assertions SAML qui ne sont pas signées par votre fournisseur d’identité.
- Si Signer les AuthnRequests est activé :
- PandaSuite génère un certificat de signature lorsque vous enregistrez la configuration.
- Privilégiez l’URL de métadonnées PandaSuite si votre fournisseur d’identité peut la recharger automatiquement. Utilisez Télécharger le certificat PEM seulement si vous devez importer le certificat manuellement.
- Ajoutez une ou plusieurs adresses dans Notifications d’expiration de certificat pour recevoir des rappels 30 jours et 7 jours avant l’expiration du certificat actif.
- Lorsque PandaSuite prépare un certificat de remplacement, il apparaît comme Suivant. Importez-le d’abord dans votre fournisseur d’identité avant de l’activer dans PandaSuite. PandaSuite ne bascule pas automatiquement d’un certificat à l’autre.
- Si vous avez sélectionné OIDC :
- Renseignez URL de l’émetteur, ID Client et Secret Client.
- Si un secret client est déjà configuré, laissez Secret Client vide pour le conserver.
- Optionnel : ajustez les Scopes (par défaut :
openid,email,profile) et le Claim d’identifiant utilisateur (par défaut :sub).
- Enregistrez la configuration et testez la connexion.
- Si vous avez sélectionné SAML :
Optionnel : restreindre l’accès avec les règles d’accès
Dans l’onglet Sécurité, vous pouvez créer des Règles d’accès pour restreindre l’accès en fonction :
- des attributs SAML (y compris le champ NameID)
- des claims OIDC (y compris le claim Subject (sub))
Utiliser l’identité du visiteur dans votre app
Une fois le SSO activé sur votre web app, votre projet peut lire les attributs du visiteur connecté et prouver son identité à d’autres services.
Exposer des attributs SSO à votre projet
Dans PandaSuite Studio, ouvrez les propriétés du projet et ajoutez les noms d’attributs dont vous avez besoin (par exemple email ou role) dans le champ Paramètre(s) SSO. Seuls les attributs déclarés sont partagés avec le projet. Leurs valeurs apparaissent dans le data binding du projet sous Projet > Paramètre(s) SSO > ..., prêtes à être affichées ou réutilisées dans votre projet.
Déclarer un attribut ne suffit pas à le recevoir : la déclaration agit comme un filtre, et c’est votre fournisseur d’identité qui décide de ce qu’il envoie. Demandez à la personne qui administre votre IdP quels attributs sont transmis à l’app et sous quels noms exacts, puis déclarez ces noms tels quels. Si un attribut déclaré reste vide, c’est que l’IdP ne l’envoie pas sous ce nom.
Obtenir une preuve d’identité vérifiable
Votre app peut avoir besoin de prouver à un autre service qui est le visiteur : votre propre backend, une API ou un composant personnalisé. Les valeurs d’attributs ne constituent pas une preuve, car tout ce qui est lisible dans l’app peut être copié. Pour une vraie preuve, ajoutez le nom réservé pandasuiteIdentityAssertion dans le même champ Paramètre(s) SSO.
Par exemple, votre backend peut débloquer un contenu réservé à vos clients lorsque le sub du jeton correspond à un compte que vous connaissez déjà.
Lorsqu’un visiteur se connecte via SSO, PandaSuite dépose un jeton signé sous ce nom, à côté des autres attributs déclarés. Pour l’envoyer, branchez la valeur pandasuiteIdentityAssertion dans une requête du composant HTTP ou dans une propriété d’un composant personnalisé. Envoyez-le dans les cinq minutes qui suivent le chargement de l’app, sans le stocker pour plus tard : passé ce délai, votre service le refusera comme expiré. Chaque chargement de l’app pendant une session SSO active reçoit un jeton neuf.
Vous déclarez le nom dans Studio. Vérifier le jeton est le travail d’un développeur : transmettez-lui les détails ci-dessous.
| Le jeton en bref | Détails |
|---|---|
| Format | JWT signé par PandaSuite (RS256, en-tête typ : pandasuite-identity+jwt) |
| Durée de vie | 5 minutes |
| Vérification | hors ligne, avec les clés publiques publiées sur https://pandasuite.com/.well-known/jwks.json, en contrôlant que aud correspond bien à votre app |
sub | un identifiant stable et anonyme du visiteur (il commence par psid_), jamais l’identifiant brut de votre IdP |
auth_time | le moment où le visiteur s’est authentifié auprès du fournisseur d’identité ; exigez une valeur récente si votre service veut une connexion fraîche |
email et attributes | présents uniquement si vous déclarez aussi ces noms d’attributs |
aud et publication_id | indiquent où la connexion a eu lieu (l’app ou la publication) |
channel_id | présent uniquement lorsque le visiteur s’est connecté via votre app, absent pour un lien direct de publication |
Configurer le SSO pour accéder à PandaSuite Studio
La mise en place nécessite de contacter l’équipe PandaSuite.
-
Demande de création de votre organisation
- Contactez l’équipe PandaSuite pour demander la création de votre organisation SSO
- Confirmez le protocole souhaité (SAML ou OIDC)
- L’équipe PandaSuite vous communiquera les informations nécessaires (selon le protocole sélectionné) :
- SAML : URL de métadonnées, Entity ID et Assertion Consumer Service URL
- OIDC : URL de callback
-
Configurer votre fournisseur d’identité (IdP)
Utilisez les informations transmises par l’équipe PandaSuite pour configurer PandaSuite Studio dans votre fournisseur d’identité (Azure AD, Google Workspace, Okta, etc.).
-
Transmission des métadonnées IdP
- Si vous avez sélectionné SAML : envoyez à l’équipe PandaSuite le fichier XML des métadonnées de votre fournisseur d’identité ou une URL des métadonnées, et confirmez si vous avez besoin de Signer les AuthnRequests et/ou d’Exiger des assertions signées.
- Si vous avez sélectionné OIDC : envoyez à l’équipe PandaSuite l’URL de l’émetteur, l’ID Client et le Secret Client (et optionnellement les Scopes et le Claim d’email).
-
Finalisation
Une fois la configuration terminée par l’équipe PandaSuite, vos utilisateurs pourront accéder à PandaSuite Studio via le SSO.
Si votre SSO Studio utilise la signature des requêtes SAML, PandaSuite peut également exposer le certificat de signature via l’URL de métadonnées ou un fichier PEM téléchargeable, ainsi que des Notifications d’expiration de certificat pour anticiper le renouvellement. Lorsque PandaSuite prépare un certificat de remplacement, il apparaît comme Suivant. Importez-le dans votre fournisseur d’identité avant de l’activer dans PandaSuite.