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 redirige l’utilisateur vers l’IdP et lui demande de l’authentifier.
-
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
- Dans Services, cliquez sur Sécurité
- Activez l’option Activer 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 - Identificateur (Entity ID) :
https://pandasuite.com/launcher/c/[ID_APP] - URL de réponse (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
Sur la page 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))
Dans Règles d’accès, cliquez sur Ajouter une règle, puis renseignez :
- Nom du champ : la valeur à vérifier. Choisissez Utiliser le champ NameID (SAML) ou Utiliser le claim Subject (sub) (OIDC), ou bien Attribut personnalisé / Claim personnalisé et saisissez son Nom de l’attribut / Nom du claim (par exemple
emailourole). - Channel : appliquez la règle à Tous les channels ou à un seul channel de votre app. Une règle sur le champ NameID ou le claim Subject (sub) s’applique toujours à tous les channels. Pour un attribut ou un claim personnalisé, une règle définie pour un channel remplace, sur ce channel, la règle Tous les channels du même champ.
- Liste autorisée (patterns autorisés) : un pattern par ligne. Si cette liste est renseignée, la valeur du visiteur doit correspondre à au moins un de ses patterns.
- Liste interdite (patterns bloqués) : un pattern par ligne. Un visiteur dont la valeur correspond à l’un de ces patterns est refusé.
Chaque pattern est une expression régulière, recherchée n’importe où dans la valeur, en respectant la casse : @company\.com$ correspond à toutes les adresses de ce domaine (\. désigne un point littéral, $ la fin de la valeur). Pour représenter n’importe quelle suite de caractères, utilisez .* et non * : un pattern qui n’est pas une expression régulière valide, comme un pattern qui commence par *, ne correspond jamais. Lorsque plusieurs règles s’appliquent, le visiteur doit toutes les respecter. Un visiteur dont le fournisseur d’identité n’envoie pas le champ vérifié est refusé.
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
L’équipe PandaSuite crée d’abord votre organisation SSO. Vous en remplissez ensuite la configuration vous-même, en tant que propriétaire de l’organisation.
-
Demande de création de votre organisation
- Contactez l’équipe PandaSuite pour demander la création de votre organisation SSO.
- Une fois créée, ouvrez-la depuis le dashboard : cliquez sur votre nom en bas à gauche, puis sur Compte. Dans l’onglet Entreprise, cliquez sur votre organisation. Consultez Gérer votre organisation pour ses membres et ses licences.
-
Récupérer les informations PandaSuite
Dans la section Authentification unique, sélectionnez un Protocole (SAML ou OIDC), puis cliquez sur Afficher la configuration SAML ou Afficher la configuration OIDC. PandaSuite vous donne les informations suivantes :
- SAML : Identificateur (ID d’entité), URL de réponse et URL des métadonnées
- OIDC : URL de callback
-
Configurer votre fournisseur d’identité (IdP)
Utilisez ces informations pour configurer PandaSuite Studio dans votre fournisseur d’identité (Azure AD, Google Workspace, Okta, etc.).
-
Saisir les informations de l’IdP
- Si vous avez sélectionné SAML : dans Type de configuration, choisissez URL dynamique et collez l’URL de métadonnées IdP, ou choisissez Fichier de métadonnées et importez le fichier XML des métadonnées de votre fournisseur d’identité. Sous Signature des requêtes et réponses, activez Signer les AuthnRequests et/ou Exiger des assertions signées si votre fournisseur d’identité en a besoin.
- Si vous avez sélectionné OIDC : renseignez l’URL de l’émetteur, l’ID Client et le Secret Client (et optionnellement les Scopes et le Claim d’email).
- Cliquez sur Enregistrer le SSO.
-
Finalisation
Une fois la configuration terminée, vos utilisateurs peuvent se connecter à PandaSuite Studio via le SSO. L’interrupteur à côté d’Authentification unique indique si le SSO est actif pour votre organisation : vous ne pouvez pas le modifier vous-même. Contactez l’équipe PandaSuite si vous avez besoin d’aide.
Si votre SSO Studio utilise la signature des requêtes SAML, PandaSuite peut également exposer le certificat de signature via l’URL des 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.