Démarrage rapide
Intégrez le SSO Trousseau dans votre application en 15 minutes.
Prérequis
Avant de commencer, assurez-vous de disposer de :
- Une application web prenant en charge OIDC (la plupart des frameworks proposent des bibliothèques pour cela)
- HTTPS activé sur votre application (obligatoire en production)
- Vos URI de redirection prêtes (l'URL vers laquelle Trousseau redirigera après l'authentification)
Étape 1 : Demandez vos identifiants
Contactez l'équipe KeySuite pour enregistrer votre application. Vous devrez fournir :
| Information | Exemple |
|---|---|
| Nom de l'application | My Hotel PMS |
| URL de production | https://app.myhotelpms.com |
| URL de staging (recommandé) | https://staging.myhotelpms.com |
| URI(s) de redirection | https://app.myhotelpms.com/auth/callback |
| URI de redirection post-déconnexion | https://app.myhotelpms.com/signed-out |
| Scopes demandés | openid email profile |
| Besoin de l'API de provisionnement ? | Oui / Non |
Vous recevrez :
# Configuration OIDC
OIDC_ISSUER=https://auth.keysuite.app/application/o/your-app-slug/
OIDC_CLIENT_ID=your-app-slug-oidc
OIDC_CLIENT_SECRET=your-generated-secret
# API de provisionnement (si demandée)
TROUSSEAU_API_URL=https://auth.keysuite.app
TROUSSEAU_API_TOKEN=your-api-tokenÉtape 2 : Configurez votre application
Ajoutez la configuration OIDC à votre application. La mise en place exacte dépend de votre framework, mais vous aurez besoin de ces valeurs :
| Paramètre | Valeur |
|---|---|
| Issuer | https://auth.keysuite.app/application/o/{your-slug}/ |
| Client ID | {your-slug}-oidc |
| Client Secret | Fourni par l'équipe KeySuite |
| Scopes | openid email profile |
| Response type | code |
| Grant type | authorization_code |
| PKCE | Obligatoire (méthode S256) |
Endpoint de découverte
Trousseau prend en charge la découverte OpenID Connect. Votre bibliothèque OIDC peut s'auto-configurer via :
https://auth.keysuite.app/application/o/{your-slug}/.well-known/openid-configurationCet endpoint retourne toutes les URLs nécessaires (autorisation, token, userinfo, JWKS, etc.).
Exemple : Next.js avec NextAuth
import NextAuth from "next-auth";
export const { handlers, signIn, signOut, auth } = NextAuth({
providers: [
{
id: "trousseau",
name: "Trousseau",
type: "oidc",
issuer: process.env.OIDC_ISSUER,
clientId: process.env.OIDC_CLIENT_ID,
clientSecret: process.env.OIDC_CLIENT_SECRET,
},
],
});Exemple : Express.js avec Passport
import passport from "passport";
import { Strategy as OIDCStrategy } from "passport-openidconnect";
passport.use(
"trousseau",
new OIDCStrategy(
{
issuer: process.env.OIDC_ISSUER,
clientID: process.env.OIDC_CLIENT_ID,
clientSecret: process.env.OIDC_CLIENT_SECRET,
callbackURL: "https://app.yourapp.com/auth/callback",
scope: "openid email profile",
},
(issuer, profile, done) => {
// profile.id est l'identifiant utilisateur Trousseau (claim sub)
// profile.emails[0].value est l'e-mail de l'utilisateur
// profile.displayName est le nom complet
return done(null, profile);
}
)
);Étape 3 : Testez le flux de connexion
- Démarrez votre application
- Redirigez l'utilisateur vers l'endpoint d'autorisation de Trousseau (votre bibliothèque OIDC gère cela)
- L'utilisateur voit la page de connexion Trousseau
- Après l'authentification, Trousseau redirige vers votre URI de redirection avec un code d'autorisation
- Votre application échange le code contre des tokens
- Extrayez les informations utilisateur depuis l'ID token ou appelez l'endpoint UserInfo
Ce que voit l'utilisateur
Utilisateur existant (possède un mot de passe) :
- Page de connexion — saisit l'e-mail et le mot de passe
- Invite MFA (si configurée) — saisit le TOTP ou touche la clé de sécurité
- Redirigé vers votre application — authentifié
Nouvel utilisateur (première connexion) :
- Page de connexion — saisit l'e-mail
- Page de création de mot de passe — crée un mot de passe (min. 10 caractères, complexité imposée)
- Redirigé vers votre application — authentifié
Étape 4 : Traitez les tokens
Après une authentification réussie, vous recevez :
| Token | Utilité | Durée de vie |
|---|---|---|
| ID Token | Identité utilisateur (JWT avec claims) | 5 minutes |
| Access Token | Accès à l'API (si nécessaire) | 5 minutes |
| Refresh Token | Obtention de nouveaux tokens | 30 jours |
Extraction des informations utilisateur
L'ID token contient les claims de l'utilisateur. Décodez le JWT pour y accéder :
{
"sub": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"email": "jean.dupont@hotel.com",
"email_verified": true,
"name": "Jean Dupont",
"given_name": "Jean",
"family_name": "Dupont",
"picture": "https://..."
}Vous pouvez aussi appeler l'endpoint UserInfo :
curl https://auth.keysuite.app/application/o/userinfo/ \
-H "Authorization: Bearer {access_token}"Étape 5 : Implémentez la déconnexion
Lorsque votre utilisateur se déconnecte, redirigez-le vers l'endpoint end-session de Trousseau pour clore la session SSO :
https://auth.keysuite.app/application/o/{your-slug}/end-session/?
id_token_hint={id_token}&
post_logout_redirect_uri=https://app.yourapp.com/signed-outCela garantit que l'utilisateur est déconnecté à la fois de votre application et de Trousseau.
Consultez le guide SSO Logout pour les détails sur le RP-Initiated et le Backchannel Logout.
Prochaines étapes
Vue d'ensemble
Trousseau est le fournisseur d'identité centralisé de l'écosystème KeySuite. Intégrez le SSO dans votre application grâce au protocole OIDC standard.
Guide d'intégration OIDC
Présentation détaillée de l'intégration de l'authentification Trousseau via le flux Authorization Code avec PKCE.