KeySuiteTrousseau
Sécurité

Bonnes pratiques de sécurité

Checklist et recommandations pour une intégration OIDC Trousseau sécurisée.

Checklist d'intégration

Utilisez cette checklist pour vérifier que votre intégration respecte les bonnes pratiques de sécurité :

Flux d'authentification

  • Utilisez le flux Authorization Code avec PKCE: N'utilisez jamais le flux Implicit. Le PKCE (S256) est obligatoire.
  • Validez le paramètre state: Générez une valeur aléatoire, stockez-la en session, et vérifiez-la au callback pour prévenir les attaques CSRF.
  • Échangez le code côté serveur: L'échange de tokens (code → tokens) doit se faire sur votre backend, jamais dans le navigateur.
  • Stockez le client secret côté serveur: Ne l'exposez jamais dans le code frontend, les applications mobiles ou le contrôle de version.

Gestion des tokens

  • Validez les signatures des ID tokens: Utilisez l'endpoint JWKS pour vérifier que le token a été signé par Trousseau. La plupart des bibliothèques OIDC le font automatiquement.
  • Vérifiez les claims iss et aud: Vérifiez que l'émetteur correspond à votre URL d'émetteur Trousseau et que l'audience correspond à votre client ID.
  • Vérifiez l'expiration du token (exp): Rejetez les tokens expirés.
  • Utilisez des access tokens à courte durée de vie: Les access tokens expirent en 5 minutes. Utilisez les refresh tokens pour en obtenir de nouveaux.
  • Stockez les refresh tokens de manière sécurisée: Chiffrez au repos. N'envoyez jamais au frontend. Faites tourner à chaque utilisation.

Gestion des sessions

  • Créez vos propres sessions applicatives: Ne reposez pas uniquement sur les tokens OIDC pour l'état de session. Créez une session côté serveur après validation de l'ID token.
  • Implémentez la déconnexion correctement: Effacez votre session applicative ET redirigez vers l'endpoint end-session de Trousseau pour clore la session SSO.
  • Gérez le Backchannel Logout (recommandé): Implémentez l'endpoint de backchannel logout pour gérer les déconnexions initiées par Trousseau.

Réseau et infrastructure

  • HTTPS uniquement: Toutes les URI de redirection doivent utiliser HTTPS. Trousseau rejette les URI de redirection HTTP en production.
  • Enregistrez des URI de redirection exactes: N'utilisez pas de wildcards. Chaque URI de redirection doit être exacte.
  • Ancrez votre URL d'émetteur: Ne récupérez pas l'émetteur dynamiquement depuis une entrée non fiable.

Erreurs courantes à éviter

Stocker les tokens dans localStorage

Problème : localStorage est accessible à tout JavaScript sur la page. Une vulnérabilité XSS exposerait tous les tokens.

Solution : Stockez les tokens dans des cookies HTTP-only ou des sessions côté serveur.

Ignorer la validation des tokens

Problème : Accepter un ID token sans vérifier sa signature signifie que n'importe qui peut forger un token.

Solution : Validez toujours via l'endpoint JWKS. Utilisez une bibliothèque OIDC de confiance qui gère cela.

Ne pas implémenter la déconnexion

Problème : Effacer uniquement la session de votre application laisse la session Trousseau active. L'utilisateur peut se réauthentifier silencieusement sans saisir ses identifiants.

Solution : Redirigez toujours vers l'endpoint end-session lors de la déconnexion. Consultez le guide SSO Logout.

Coder les URLs d'endpoints en dur

Problème : Les URLs d'endpoints peuvent changer. Les coder en dur fragilise votre intégration.

Solution : Utilisez l'endpoint de découverte OpenID (.well-known/openid-configuration) pour résoudre toutes les URLs dynamiquement au démarrage.

Mesures de sécurité Trousseau

Ces mesures sont appliquées côté Trousseau et s'appliquent à tous les utilisateurs de l'écosystème :

Politiques de mots de passe

RègleApplication
Longueur minimale10 caractères
Majuscule requiseAu moins 1
Minuscule requiseAu moins 1
Chiffre requisAu moins 1
Symbole requisAu moins 1
Vérification de robustesseScore zxcvbn 3+ (bon ou excellent)
Vérification des fuitesContrôle via Have I Been Pwned (HIBP)
Protection contre le brute-forceScoring de réputation (IP + nom d'utilisateur)

Consultez les Politiques de mots de passe pour les détails complets.

Authentification multi-facteur

La MFA est optionnelle mais disponible pour tous les utilisateurs. Méthodes prises en charge :

MéthodeDescription
TOTPGoogle Authenticator, Authy, etc.
WebAuthnPasskeys, clés de sécurité (YubiKey), Touch ID, Windows Hello
Codes de récupérationCodes de secours à usage unique

Les utilisateurs activent la MFA depuis les paramètres de leur compte Trousseau. Si configurée, la MFA est demandée à chaque connexion: votre application n'a rien à implémenter.

Infrastructure

AspectDétail
HébergementFrance (Scaleway), résidence des données en UE
ChiffrementTLS 1.3 en transit, chiffrement au repos
SauvegardesSauvegardes automatiques quotidiennes avec rétention 30 jours
SupervisionHealth checks, monitoring de disponibilité

Sécurité de l'API de provisionnement

Si vous avez accès à l'API de provisionnement :

  • Stockez le token API de manière sécurisée: Traitez-le comme un mot de passe. Ne committez jamais dans le contrôle de version.
  • Utilisez HTTPS uniquement: Tous les appels API doivent utiliser HTTPS.
  • Délimitez vos requêtes: Filtrez toujours par votre groupe pour éviter d'accéder aux utilisateurs hors de votre périmètre.
  • Ne supprimez pas les utilisateurs: Utilisez la désactivation (is_active: false) plutôt que la suppression.
  • Faites tourner les tokens régulièrement: Demandez un nouveau token API à l'équipe KeySuite si vous suspectez une compromission.

Signalement de problèmes de sécurité

Si vous découvrez une vulnérabilité de sécurité dans Trousseau ou l'intégration OIDC :

  1. Ne la divulguez pas publiquement
  2. Contactez l'équipe sécurité KeySuite à security@keysuite.app
  3. Incluez les étapes de reproduction si possible
  4. Nous visons un accusé de réception sous 24 heures et la résolution des problèmes critiques sous 72 heures