Skip to main content
Cet article explique comment Paradigm implémente le protocole SCIM (System for Cross-domain Identity Management) pour permettre le provisioning et la gestion transparente des utilisateurs entre systèmes.

Qu’est-ce que SCIM ?

SCIM (System for Cross-domain Identity Management) est une norme ouverte qui simplifie la gestion des utilisateurs dans des scénarios multi-domaines. Elle fournit un schéma standardisé et une API pour créer, lire, mettre à jour et supprimer les données d’identité entre les fournisseurs d’identité et les fournisseurs de services.
Veuillez noter que les modifications sur les utilisateurs sont toujours possibles depuis le panneau d’administration Paradigm même si vous avez le provisioning d’utilisateurs avec SCIM activé pour votre entreprise.

Détails de l’Implémentation SCIM

Version SCIM Prise en Charge

Paradigm prend en charge SCIM 2.0 (RFC 7642, RFC 7643 et RFC 7644).

Fournisseurs d’Identité Testés

Notre implémentation SCIM a été testée avec :
  • Microsoft Entra ID

URL de Base

Tous les endpoints SCIM sont accessibles via :
Avec [paradigm-domain] étant le nom de domaine sous lequel Paradigm est hébergé. Pour la plateforme Saas de LightOn, sa valeur serait https://paradigm.lighton.ai/scim/v2/.

Authentification

Pour sécuriser l’API SCIM, nous avons implémenté une authentification basée sur des jetons utilisant notre backend d’authentification de clé API. Chaque requête doit inclure un en-tête d’autorisation :
Vous pouvez générer et gérer les clés API dans le Panneau d’Administration sous Paramètres API.
Une clé API Paradigm ne peut être utilisée que pour gérer les utilisateurs faisant partie de la même entreprise que le propriétaire de la clé API, quel que soit le rôle de l’utilisateur.

Endpoints Pris en Charge

Voici les endpoints SCIM pris en charge par Paradigm avec leurs méthodes HTTP :
Il n’est actuellement pas possible de gérer les groupes via l’endpoint /Groups.

Attributs SCIM Utilisateur Pris en Charge

L’implémentation SCIM de Paradigm prend en charge les attributs utilisateur suivants : Attributs Principaux

Schéma de Groupe

L’implémentation SCIM de Paradigm prend en charge les attributs de groupe suivants :

Gestion des Erreurs

Les endpoints de l’API SCIM Paradigm retournent des codes HTTP standard suivant le format d’erreur SCIM : Voici un exemple de réponse d’erreur :

Flux de Provisioning

Provisioning d’Utilisateur

  1. Le Fournisseur d’Identité (IdP) initie une requête SCIM pour créer un utilisateur sur l’endpoint /Users
  2. Paradigm valide la requête et les données utilisateur
  3. Un nouveau compte utilisateur est créé avec les permissions par défaut
  4. Une réponse de succès est retournée à l’IdP

Dé-provisioning d’Utilisateur

  1. Le Fournisseur d’Identité (IdP) envoie une requête pour désactiver ou supprimer un utilisateur
  2. Paradigm valide la requête
  3. Pour la désactivation : Le statut active de l’utilisateur est défini sur false
  4. Pour la suppression : Le compte utilisateur est anonymisé (Toutes les données utilisateur sont supprimées mais les données comportementales sont conservées)
  5. Une réponse de succès est retournée à l’IdP
Toute requête SCIM ultérieure sur l’utilisateur anonymisé retournera une réponse HTTP 404 Not Found.

Exemples de requête/réponse API

Création d’Utilisateur

Exemple de données de requête :
Réponse associée :

Mise à Jour d’un Utilisateur

Exemple de données de requête :

Dépannage

Échecs d’Authentification

  • Vérifiez que votre clé API est valide et n’a pas expiré
  • Vérifiez que le propriétaire de la clé API a les permissions pour gérer les utilisateurs
  • Assurez-vous que l’en-tête Authorization est correctement formaté

Bonnes Pratiques

  1. Implémenter des Mises à Jour Incrémentales : Utilisez les opérations PATCH au lieu de PUT quand c’est possible
  2. Gérer les Échecs d’API avec Élégance : Implémentez une logique de retry avec backoff exponentiel
  3. Maintenir la Synchronisation IdP : Planifiez des synchronisations complètes régulières pour assurer la cohérence
  4. Sécuriser Vos Clés API : Effectuez une rotation régulière des jetons et stockez-les de manière sécurisée