Contact sales

Qu'est-ce que le SCIM et à quoi sert-il ?

Qu'est-ce que le SCIM et à quoi sert-il ?
Alexandre Dedourges

Alexandre Dedourges

Dévéloppeur en sécurité

De nos jours, de plus en plus d’entreprises requièrent des SaaS (Software-as-a-Service) voulant travailler avec elles qu’elles soient compatibles avec leur SSO (Single Sign-On ou Authentification unique en français). En effet, le SSO est un moyen pour les entreprises de renforcer la sécurité des authentifications et des accès.

Mais celui-ci va offrir un gain de temps significatif aux employés en simplifiant le processus d’authentification. Si vous voulez en savoir plus sur le SSO, vous pouvez aller consulter notre article à son sujet ici. Néanmoins, pour garantir une sécurité optimale et l’intégrité des identités, il est nécessaire d’employer le SCIM.

Le SCIM (System for Cross-domain Identity Management ou en français Système de gestion des identités interdomaines) est un standard qui permet une automatisation des échanges d’informations d’identités entre systèmes. Cela peut s’avérer très pratique dans le cas où vous utilisez ou, envisagez d’utiliser, un SSO.

Petite dose de rappel concernant le SSO

L’authentification unique, souvent désignée SSO, est une méthode permettant à un utilisateur d’accéder à plusieurs applications, tout en ne procédant qu’à une seule authentification. Il permet de connecter un utilisateur à toutes les applications dont il a besoin pour travailler. Le SSO est très pratique dans le cas où une entreprise a recours à plusieurs SaaS dans le cadre de son activité. Grâce au SSO la gestion des identités est donc simplifiée. Toutefois, il demeure nécessaire de gérer les modifications effectuées sur ces identités pour garantir leur intégrité et la sécurité de notre système. C’est ce que va nous permettre le protocole SCIM en simplifiant la mise à jour des données d’identité.

Le SCIM pour des identités à jour 

Au fur et à mesure que votre entreprise s’agrandit, prend de l’ampleur et se développe, le nombre d’employés qui y travaillent grandit lui aussi. Le nombre d’identités à gérer est donc de plus en plus conséquent et le travail des équipes IT de plus en plus complexe. Quand un nouveau collaborateur vous rejoint ou quand un autre change de nom, ce sont des identités qu’il faut gérer, créer ou mettre à jour. Faire ces changements à la main se révélerait long et fastidieux pour vos équipes IT. Surtout dans le cadre d’un développement rapide de votre entreprise. C’est dans cette situation qu’intervient le SCIM. Le SCIM est un protocole créé en 2011. Celui-ci a été créé en prévision de l’affluence des SSO qui était en train d’arriver. Le SCIM va offrir la possibilité de ne plus se soucier de la mise à jour des identités. En effet, une fois celui-ci mis en place avec notre SSO, chaque modification d’une identité du côté fournisseur d’identité sera prise en compte et propagée sur tous les services qui consomment ce SSO. Ainsi la sécurité de votre système est conservée. Par exemple, un employé qui a quitté votre entreprise ne pourra plus accéder aux services auxquels il avait accès. Une personne ayant changé de nom de famille suite à un mariage par exemple verra son profil mis à jour sur tous ses services… Pour résumer, le SCIM permet le maintien des données d’identités à jour afin d’éviter tout problème. En effet d’après une étude menée par Beyond Identity, 83 % des employés interrogés ont déjà par le passé conservé des accès à leurs anciennes entreprises après l’avoir quitté. De plus 56 % d’entre eux ont cherché à nuire à leurs anciens employeurs à l’aide de leurs accès conservés. Enfin 74 % des employeurs déclarent, selon cette étude, avoir été impactés négativement par un employé ayant conservé ses accès. C’est pourquoi la conservation des informations d’identités à jour est primordiale pour les entreprises. C’est ce qu’on appelle la gestion de cycle de vie des identités.

SCIM les avantages d’un protocole devenu une norme pour les échanges de données.

Le protocole SCIM est devenu au fil du temps et de l’utilisation de plus en plus importante des SSOs une norme. Celui-ci est utilisé par un grand nombre d’entreprises ayant mis en place des SSOs. C’est une des raisons qui font sa force. Avec le SCIM les données utilisateurs peuvent être communiquées partout de la même manière, ce qui facilite grandement son utilisation. Les données sont donc transférées de la même manière entre les différents services et applications. C’est grâce à cette uniformisation des données que les processus de provisioning et déprovisioning peuvent être automatisés. Il permet de gérer les rôles, groupes, permissions en un seul et même point. Les données étant transmises automatiquement, les équipes n’ont, en effet, plus besoin de modifier tout sur chaque plateforme.

Des ressources, des schémas et des modèles d’extension

Le SCIM est avant tout basé sur un schéma d’utilisateur commun, un schéma de groupe et un modèle d’extension. Ceux-ci seront échangés via un protocole HTTP dont nous parlerons dans la partie suivante. Le SCIM possède aussi un modèle d’objet dans lequel une ressource est le dénominateur commun et tous les autres objets SCIM en sont dérivés. Pour pouvoir être considérée comme une ressource, celle-ci doit avoir pour attribut un id, un externalId et un meta. Ces trois attributs sont la base d’une ressource. D’autres éléments vont ensuite étendre cette ressource par exemple un User, un EnterpriseUser, un Groupe…

Un standard sous forme d’API REST

Le fonctionnement du SCIM est basé sur le JSON (JavaScript Object Notation) et sur le REST (REpresentational State Transfer). L’utilisation d’API REST va permettre la mise à jour des utilisateurs en CRUD (Create, Read Update, Delete) pour tous les systèmes et applications concernés. Pour pouvoir créer, modifier ou encore supprimer un utilisateur par exemple, il va être nécessaire d’utiliser des requêtes API.

Imaginons qu’un nouvel employé rejoint la société Cryptr. Un objet « Utilisateur » va donc devoir être créé. Cet objet sera composé de différents champs, comme « Nom », « Prénom », « Age »… De plus, celui-ci devra être propagé à tous les outils et applications SaaS pour que notre nouvel arrivant puisse accéder à tous les outils nécessaires à son travail.

Voici alors la structure en JSON que nous pourrions avoir à transmettre :

Pour pouvoir traiter ces structures, une liste d’Endpoints de base est mise à disposition directement via le protocole SCIM :

Il va désormais nous falloir utiliser les requêtes pour pouvoir transmettre cette donnée à travers toutes nos applications. Pour cela il existe plusieurs méthodes HTTP :

Nous allons donc utiliser une méthode POST, car comme le montre le tableau ci-dessus la méthode POST permet la création de ressource contrairement aux autres méthodes.

La création de l’utilisateur via la requête HTTP POST se présente sous la forme suivante :

Ce qui donnerait dans notre cas avec l’exemple précédemment défini :

Ici on travaille avec la version 2 de notre API et nous voulons créer un utilisateur, nous allons donc travailler sur la ressource « users ». À l’issue de notre requête POST, notre user sera créé à partir des paramètres fournis au format JSON. Si la requête aboutit, une réponse JSON sera renvoyée, elle pourra prendre la forme suivante : 

On peut voir qu’un ID a été créé, celui-ci nous permettra d’identifier plus facilement notre utilisateur dans le futur.

Pour les autres méthodes, la requête sera sensiblement la même à un détail près, l’ajout du paramètre ID à notre URL (il faudra bien évidemment aussi utiliser la bonne méthode) :

Le SCIM un outil alliant sécurité, productivité et expérience utilisateur

En d’autres termes, le protocole SCIM permet une meilleure gestion des identités. En alliant sécurité, productivité et expérience utilisateur, celui-ci s’impose comme un « must-have » pour toute entreprise utilisant un SSO. De plus, le fait pour un fournisseur de service d’être « SSO-compatible » devient de plus en plus important et même une nécessité. Dès lors, un des enjeux pour les SaaS est de devenir « SSO-ready », c’est-à-dire d’avoir la capacité à se connecter aux différents types de SSO et d’Identity Providers qu’ils peuvent rencontrer chez leurs clients ou prospects entreprises. Satisfaire cette exigence est donc à la fois un enjeu de sécurité, mais également un enjeu business pour étendre son marché et contractualiser avec des clients ayant cette attente. Avec quelques lignes de code, Cryptr peut rendre votre authentification compatible avec tous types de SSO (SAML, ADFS, OIDC) et les Identity Providers (Okta, Ping Identity, Auth0, OneLogin, Google, …) que vous pourriez rencontrer. Bien évidemment le protocole SCIM que nous venons de traiter dans cet article sera lui aussi de la partie ! Celui-ci vous permettra d’adopter les SSO en toute sérénité.

Alors prêt à en apprendre plus sur le SCIM et les SSO ? On vous en dit plus chez Cryptr.

Cryptr users management As A Service offers a modern approach to handle end-users authentication security for web and mobile applications.

TwitterLinkedin

Company