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.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 :[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 :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 PrincipauxSché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
- Le Fournisseur d’Identité (IdP) initie une requête SCIM pour créer un utilisateur sur l’endpoint
/Users - Paradigm valide la requête et les données utilisateur
- Un nouveau compte utilisateur est créé avec les permissions par défaut
- Une réponse de succès est retournée à l’IdP
Dé-provisioning d’Utilisateur
- Le Fournisseur d’Identité (IdP) envoie une requête pour désactiver ou supprimer un utilisateur
- Paradigm valide la requête
- Pour la désactivation : Le statut
activede l’utilisateur est défini surfalse - Pour la suppression : Le compte utilisateur est anonymisé (Toutes les données utilisateur sont supprimées mais les données comportementales sont conservées)
- Une réponse de succès est retournée à l’IdP
404 Not Found.
Exemples de requête/réponse API
Création d’Utilisateur
Exemple de données de requête :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
- Implémenter des Mises à Jour Incrémentales : Utilisez les opérations PATCH au lieu de PUT quand c’est possible
- Gérer les Échecs d’API avec Élégance : Implémentez une logique de retry avec backoff exponentiel
- Maintenir la Synchronisation IdP : Planifiez des synchronisations complètes régulières pour assurer la cohérence
- Sécuriser Vos Clés API : Effectuez une rotation régulière des jetons et stockez-les de manière sécurisée