Intégration Okta SSO & SCIM pour une plateforme d'entreprise de santé et bien-être
Une plateforme SaaS d'entreprise de santé et bien-être devait prendre en charge de grands clients organisationnels qui exigeaient le Single Sign-On (SSO) pour un accès fluide des employés et le provisionnement/déprovisionnement automatisé des utilisateurs via SCIM — une exigence non négociable pour les ventes aux entreprises.
Discutez de Votre Projet
Le Défi
Les clients d'entreprise refusaient d'adopter la plateforme sans fédération d'identité et gestion automatisée du cycle de vie :
- Exigence SSO — Les services IT ont exigé que les employés se connectent via leur fournisseur d'identité d'entreprise, et non avec des identifiants séparés
- Charge de travail d'intégration manuelle — L'ajout manuel de centaines d'employés lors de l'inscription d'une nouvelle organisation nécessitait des jours de travail administratif
- Risque de désactivation — Lorsque les employés quittaient l'organisation, leurs comptes de plateforme restaient actifs pendant des semaines, ce qui soulevait des problèmes de conformité et d'accès aux données
- Accès basé sur les groupes — Différents groupes d'employés nécessitaient différents niveaux de fonctionnalités et accès aux programmes
- Complexité multi-locataire — Chaque client d'entreprise avait son propre locataire de fournisseur d'identité avec des configurations, des mappages d'attributs et des structures de groupe différents
- Coexistence d'authentifications existantes — La plateforme disposait déjà d'une authentification par email/mot de passe et OAuth ; le SSO devait coexister sans perturber les flux existants
Notre Solution
Nous avons mis en œuvre Okta SSO via SAML 2.0/OIDC pour l'authentification et SCIM 2.0 pour le provisionnement, le déprovisionnement et la synchronisation de groupe automatisés des utilisateurs — intégré au backend multi-locataire existant.
Architecture
- Fournisseur d'identité : Okta (locataires gérés par le client)
- Protocole SSO : SAML 2.0 (principal) + OIDC (alternatif)
- Provisionnement : Serveur SCIM 2.0 intégré au backend de la plateforme
- Backend : NestJS avec PostgreSQL et Redis
- Couche d'authentification : Sessions basées sur JWT avec émission de jetons compatible SSO
- Tableau de bord administrateur : Configuration de locataire basée sur React pour la configuration SSO
- Authentification existante : Email/mot de passe + Google OAuth conservés aux côtés du SSO
---
Implémentation SSO (SAML 2.0 / OIDC)
Flux SAML 2.0
Le flux SAML initié par le SP fonctionne comme suit : l'utilisateur visite la page de connexion et sélectionne le SSO, saisit le domaine de messagerie de son entreprise, la plateforme identifie la configuration Okta du locataire à partir du domaine, envoie une AuthnRequest à Okta, l'utilisateur s'authentifie, Okta renvoie une assertion SAML signée, la plateforme valide l'assertion et crée une session avec des jetons JWT.
Configuration par locataire
Le SSO de chaque locataire est configuré avec l'URL SSO de son fournisseur d'identité, son ID d'entité, son certificat X.509 pour la validation de signature, ainsi que l'ID d'entité SP de la plateforme, l'URL du service de consommateur d'assertion et les mappages d'attributs des champs de profil du fournisseur d'identité vers les champs utilisateur de la plateforme.
Alternative OIDC
Pour les clients préférant OIDC à SAML, la plateforme prend en charge le flux Authorization Code avec PKCE, en utilisant le même mappage d'attributs via les OIDC claims et la validation du jeton ID avec JWKS.
Routage SSO multi-locataire
La plateforme achemine les utilisateurs vers le fournisseur d'identité correct en fonction de leur domaine de messagerie. Lorsqu'un utilisateur saisit son email, la plateforme recherche le domaine par rapport aux configurations SSO du locataire. Si le SSO est configuré, l'utilisateur est redirigé vers le locataire Okta de son organisation. Sinon, il se rabat sur l'email/mot de passe ou Google OAuth. Les URL personnalisées sont également prises en charge pour l'accès SSO direct. ---
Implémentation SCIM 2.0
Serveur SCIM
La plateforme expose une API conforme à SCIM 2.0 que Okta appelle pour gérer les utilisateurs et les groupes. L'API prend en charge toutes les opérations du cycle de vie des utilisateurs (créer, lire, mettre à jour, désactiver, supprimer), le CRUD de groupe avec gestion de l'adhésion, et les points de terminaison de découverte SCIM standard pour les capacités, les schémas et les types de ressources.
Cycle de vie de l'utilisateur via SCIM
Provisionnement :Lorsqu'un administrateur attribue un utilisateur à l'application de la plateforme dans Okta, Okta envoie une requête de création à l'API SCIM. La plateforme crée le compte utilisateur avec l'association au locataire, le marque comme actif et provisionné par SSO, et l'utilisateur peut immédiatement se connecter via SSO.
Mises à jour de profil :Lorsqu'un administrateur met à jour le profil d'un utilisateur dans Okta, les modifications sont transmises à la plateforme via SCIM. Si le département change, l'appartenance au groupe est réévaluée automatiquement.
Déprovisionnement :Lorsqu'un utilisateur est retiré de l'application dans Okta, la plateforme désactive le compte — révoquant toutes les sessions actives immédiatement, empêchant toute connexion ultérieure, conservant les données selon la politique de rétention et libérant la place de licence.
Réactivation :Réattribuer un utilisateur dans Okta réactive son compte avec toutes les données historiques intactes.
Synchronisation des groupes
Les groupes Okta sont mappés aux rôles de la plateforme et aux niveaux de programme — contrôlant l'accès à différents niveaux de fonctionnalités, aux capacités d'administration, aux tableaux de bord spécialisés et aux inscriptions aux programmes exclusifs. Les changements d'appartenance à un groupe dans Okta sont transmis via SCIM et reflétés en temps réel sans nécessiter de reconnexion. ---
Sécurité et authentification
Émission de jetons après SSO
Après la validation de l'assertion SAML, la plateforme émet des JWTs à portée locataire avec des claims pour l'identité de l'utilisateur, l'organisation, les rôles (dérivés de l'appartenance au groupe SCIM), la méthode d'authentification et le fournisseur d'identité — permettant une différenciation d'audit entre le SSO et les autres méthodes d'authentification.
Gestion des sessions
- Les sessions SSO respectent la durée de vie des sessions Okta
- Single Logout (SLO) pris en charge pour la terminaison de session lorsque l'utilisateur se déconnecte d'Okta
- Webhook de déconnexion par canal arrière pour la révocation immédiate de session
- La désactivation SCIM révoque toutes les sessions actives dans les 60 secondes
Contrôles de sécurité
- Validation de la signature de la réponse SAML par rapport au certificat X.509 du locataire
- Prévention de la relecture d'assertion via le suivi à usage unique
- Tolérance de décalage d'horloge pour la validation de l'horodatage d'assertion
- Validation de la restriction d'audience
- Assertions chiffrées prises en charge pour les déploiements sensibles
- Authentification du point de terminaison SCIM via des Bearer tokens par locataire
- Limitation de débit sur les points de terminaison SCIM
---
Tableau de bord de configuration administrateur
Configuration SSO du locataire
Le tableau de bord administrateur propose un flux de configuration en libre-service :
- Sélection du protocole — Choisir SAML 2.0 ou OIDC
- Téléchargement des métadonnées — Télécharger le XML des métadonnées IdP (remplit automatiquement la configuration)
- Mappage d'attributs — Mapper les champs de profil du fournisseur d'identité aux champs utilisateur de la plateforme
- Vérification de domaine — Vérifier la propriété du ou des domaines de messagerie pour le routage SSO
- Connexion de test — Lancer une connexion SSO de test avant d'activer pour tous les utilisateurs
- Configuration SCIM — Générer un Bearer token pour la configuration du provisionnement SCIM
- Mappage de groupes — Mapper les groupes du fournisseur d'identité aux rôles et niveaux de la plateforme
Le tableau de bord fournit également des métadonnées SP téléchargeables pour une configuration facile de l'application du fournisseur d'identité. ---
Fonctionnalités clés
- Prise en charge de SAML 2.0 + OIDC — Choix de protocole flexible par locataire
- Provisionnement SCIM 2.0 — Création, mises à jour et désactivation automatisées des utilisateurs
- Mappage groupe-rôle — Les groupes de fournisseurs d'identité contrôlent les niveaux d'accès et les programmes de la plateforme
- Déprovisionnement instantané — La désactivation SCIM révoque l'accès dans les 60 secondes
- Routage SSO multi-locataire — Découverte IdP basée sur le domaine de messagerie à travers les locataires
- Méthodes d'authentification coexistantes — SSO aux côtés de l'email/mot de passe et Google OAuth
- Configuration en libre-service — Tableau de bord administrateur pour la configuration SSO sans support technique
- Single Logout — Session de la plateforme terminée lorsque l'utilisateur se déconnecte du fournisseur d'identité
- Piste d'audit — Chaque opération SCIM et événement SSO enregistré pour la conformité
- Synchronisation de groupes SCIM — Modifications de rôles et de programmes en temps réel à partir de l'appartenance à un groupe de fournisseurs d'identité
Résultats
Stack Technologique
caseStudyDetail.more Études de Cas
Découvrez plus de nos implémentations techniques
Traitement de factures assisté par l'IA avec OCR et intégration QuickBooks
Une entreprise de taille moyenne, traitant des centaines de factures fournisseurs chaque mois, devait éliminer la saisie manuelle des données en extrayant automatiquement les données des factures à l'aide de l'IA/OCR et en les synchronisant directement dans QuickBooks pour la tenue de livres et le suivi des paiements.
Insertion d'annonces côté client (CSAI) avec analyse des marqueurs SCTE-35 et intégration de lecteurs multiplateformes
Une plateforme de streaming vidéo devait implémenter l'insertion d'annonces côté client (CSAI) sur les applications web, mobiles et de télévision connectée — permettant des expériences publicitaires personnalisées au niveau de l'appareil avec un support complet d'interaction publicitaire (superpositions cliquables, bannières complémentaires, boutons de saut) que l'insertion côté serveur ne peut pas offrir.
PrĂŞt Ă Transformer Votre Entreprise ?
Discutons de la façon dont nous pouvons appliquer des solutions similaires à vos défis.