Comprendre le provisionnement Just-in-Time
Le provisionnement Just-in-Time est un processus utilisé dans les systèmes de gestion des identités et des accès pour créer des comptes utilisateurs à la volée lorsqu'ils se connectent à un système pour la première fois. Cet article explique les bases du provisionnement Just-in-Time et répond aux questions courantes concernant son implémentation.
Avant de discuter du provisionnement Just-in-Time, imagine que tu construis une application SaaS B2B et que tu veux prendre en charge les fonctionnalités d'abonnement, permettant aux membres de rejoindre facilement ton espace de travail (locataire). Quelles fonctionnalités proposerais-tu ? Voici une liste de contrôle pour toi :
Scénario | Flux |
---|---|
Invitation administrateur | Les utilisateurs peuvent recevoir une invitation par email pour rejoindre l'organisation. |
Création ou importation d'utilisateur API de gestion | Les utilisateurs peuvent utiliser un compte utilisateur pré-créé pour rejoindre l'organisation. |
Provisionnement Just-in-Time | Les utilisateurs qui se connectent à l'application pour la première fois peuvent rejoindre l'organisation. |
Synchronisation de répertoire (ex. SCIM) | Utilisez la fonctionnalité de synchronisation de répertoire (Directory Sync) de l'IdP pour provisionner les utilisateurs dans l'application à l'avance. |
Le provisionnement Just-in-Time (JIT) est un processus utilisé dans les systèmes de gestion des identités et des accès pour créer des comptes utilisateurs à la volée lorsqu'ils se connectent à un système pour la première fois. Au lieu de provisionner les comptes utilisateurs à l'avance, le provisionnement JIT crée et configure les comptes nécessaires dynamiquement lorsque l'utilisateur s'authentifie. Le provisionnement Just-in-Time est une fonctionnalité populaire avec ses propres caractéristiques, telles que l'efficacité, l'absence d'intervention administrative et l'automatisation de l'adhésion à l'organisation, etc. Maintenant que tu comprends les bases du provisionnement Just-in-Time, tu pourrais avoir plusieurs questions en te plongeant plus profondément dans le développement de produits dans le monde réel. Je vais aborder ces questions, qui peuvent être controversées et dépendent fortement de tes cas d'affaires spécifiques.
As-tu besoin de mettre en œuvre le provisionnement Just-in-Time pour ton produit ?
Ces cas sont courants lors de la création d'une application B2B impliquant une architecture multi-locataire, SSO d'entreprise, travail avec des entreprises ou nécessitant des fonctionnalités d'intégration d'équipe. Voici quelques scénarios d'exemple que ton client pourrait rencontrer.
Intégration rapide
Tu as un client qui connaît une croissance rapide ou des embauches fréquentes peut utiliser le provisionnement JIT pour configurer rapidement les comptes utilisateurs pour les nouveaux employés. Prenons un exemple :
Sarah est une nouvelle employée chez SuperFantasy
, qui utilise Okta
comme fournisseur d'identité d'entreprise. L'équipe RH l'ajoute en tant qu'identité d'entreprise [email protected]
dans Okta une seule fois. Lorsque Sarah utilise cet email pour se connecter à une application de productivité utilisée par l'entreprise appelée Smartworkspace
pour la première fois, le système crée automatiquement un compte et provisionne le rôle approprié pour elle au sein de l'espace de travail de l'entreprise. De cette manière, ni Sarah ni l'équipe RH de SuperFantasy n'ont à passer par plusieurs étapes pour la création de compte et l'attribution de rôle.
Fusions, acquisitions et travailleurs temporaires
Tu as un client qui connaît des fusions ou des acquisitions, le provisionnement JIT peut simplifier le processus d'octroi d'accès aux systèmes de l'entreprise acquérante pour de nombreux nouveaux utilisateurs. Prenons un autre exemple:
Peter travaille pour MagicTech
, qui a récemment été acquis par SuperFantasy
. MagicTech est une plus petite organisation sans SSO d'entreprise mais utilise également Smartworkspace
où Peter a déjà un compte professionnel.
L'équipe RH peut ajouter Peter dans Okta
. Lorsque Peter se connecte à Smartworkspace pour la première fois via Okta, le système lie automatiquement son compte professionnel existant et accorde l'accès approprié à SuperFantasy.
Les scénarios ci-dessus sont idéaux pour implémenter la fonctionnalité JIT.
Est-ce spécifique à SAML et SSO d'entreprise ?
Le provisionnement Just-in-Time (JIT) est souvent associé à la connexion unique (SSO) dans l'authentification SAML, mais il n'est pas exclusif à SAML. Le provisionnement JIT peut également être utilisé avec d'autres protocoles d'authentification comme OAuth 2.0 et OpenID Connect, et il ne nécessite pas toujours une configuration SSO d'entreprise.
Par exemple, le provisionnement JIT basé sur l'email peut simplifier l'intégration d'équipe en ajoutant automatiquement les utilisateurs à un espace de travail en fonction de leur domaine de messagerie. Cela est particulièrement utile pour les organisations qui n'ont pas le budget et les ressources pour acheter et gérer un SSO d'entreprise.
L'idée fondamentale derrière le provisionnement JIT est d'automatiser la création ou la mise à jour des comptes utilisateurs lorsque l'utilisateur tente d'accéder à un service pour la première fois, quel que soit le protocole utilisé.
S'applique-t-il aux nouveaux utilisateurs ou aux utilisateurs existants de l'application ?
C'est une question délicate. Le provisionnement Just-in-Time (JIT) se réfère généralement à la première tentative d'accès à une application. Cependant, différents produits perçoivent cette fonctionnalité différemment. Certains utilisent le provisionnement JIT uniquement pour la création d'identité et de compte, tandis que d'autres incluent également les mises à jour de compte en temps réel, telles que le reprovisionnement et la synchronisation des attributs.
En plus de la création automatique d'utilisateur, le provisionnement SAML JIT permet d'accorder et de révoquer des adhésions à des groupes dans le cadre du provisionnement. Il peut également mettre à jour les utilisateurs provisionnés pour maintenir leurs attributs dans le store du fournisseur de service (SP) synchronisés avec les attributs du store du fournisseur d'identité (IDP).
Par exemple, dans Oracle Cloud, le provisionnement Just-in-Time peut être configuré de différentes manières.
- Création Just-in-Time
- Mise à jour Just-in-Time
Administration du service Oracle Identity Cloud : comprendre le provisionnement SAML Just-In-Time.
Lors de la connexion, l'utilisateur : | Flux |
---|---|
Existe et le provisionnement JIT est activé. | Flux d'échec normal du SSO. |
N'existe pas et la création JIT est activée. | L'utilisateur est créé et rempli avec les attributs de l'assertion SAML, tels que mappés dans la configuration JIT. |
Existe et la mise à jour JIT est activée. | Les valeurs d'attributs de l'utilisateur sont mises à jour avec les attributs de l'assertion SAML, tels que mappés dans la configuration JIT. |
Si tu veux envisager le scénario de connexion d'utilisateur existant subséquent, assure-toi d'avoir un système de provisionnement robuste avec ton système JIT. Par exemple,
- Résolution de conflit : Ton système doit avoir une stratégie pour gérer les conflits si un compte existe déjà avec des informations différentes de celles fournies par l'IdP pendant le processus JIT. Cela peut nécessiter un contrôle détaillé des politiques de ton organisation et de la configuration de l'IdP.
- Trails d'audit : Il est important de maintenir des journaux des créations de comptes ainsi que des mises à jour de comptes existants via les processus JIT pour des raisons de sécurité et de conformité.
- Performance : Bien que le provisionnement JIT se produise rapidement, considère l'impact potentiel sur les temps de connexion, en particulier pour les utilisateurs existants si tu mets à jour leurs informations à chaque connexion.
- Cohérence des données: Assure-toi que ton processus de provisionnement JIT maintienne la cohérence des données, surtout lors de la mise à jour des comptes utilisateurs existants.
Quelle est la différence entre JIT et SCIM ?
En plus du provisionnement Just-in-Time (JIT), tu as peut-être entendu parler de SCIM (System for Cross-domain Identity Management). SCIM est un protocole standard ouvert conçu pour simplifier et automatiser la gestion des identités d'utilisateur à travers différents systèmes et domaines. Il est couramment utilisé dans des scénarios de synchronisation de répertoire.
La principale différence entre JIT et SCIM est que JIT crée des comptes lors de la tentative de connexion de l'utilisateur, tandis que SCIM peut provisionner des utilisateurs via un processus automatisé hors ligne, indépendant des tentatives de connexion de l'utilisateur.
Cela signifie que JIT se concentre sur l'intégration des nouveaux utilisateurs, tandis que SCIM se concentre sur la gestion du cycle de vie complet des utilisateurs.
De plus, JIT est souvent une extension de SAML et manque d'une implémentation standardisée entre les systèmes, tandis que SCIM est un protocole bien défini et standardisé (RFC 7644) pour la gestion des identités.
Certaines grandes organisations utilisent SCIM pour le provisionnement des comptes, l'intégrant à leurs propres systèmes. Cela peut être très complexe et varier selon les cas. Ces organisations ont souvent un système de provisionnement qui implique à la fois des processus automatisés et une implication manuelle de l'administrateur.
Provisionnement Just-in-Time dans Logto
Provisionnement Just-in-Time par SSO et Provisionnement Just-in-Time par domaine email sont ce que nous adoptons dans Logto.
Dans Logto, nous avons cet ensemble de fonctionnalités au niveau de l'organisation qui permet aux utilisateurs de rejoindre automatiquement l'organisation et de recevoir des attributions de rôles s'ils remplissent certains critères.
Nous implémentons la fonctionnalité JIT à son niveau le plus évolutif et sécurisé pour simplifier et automatiser le processus de provisionnement pour les développeurs intégrant leurs clients. Cependant, comme nous l'avons discuté précédemment, étant donné que les systèmes de provisionnement peuvent être complexes et adaptés aux besoins spécifiques de tes clients, tu devrais tirer parti des fonctionnalités JIT pré-construites de Logto, de la conception soigneuse de ton système et de l'API de gestion de Logto pour construire un système de provisionnement robuste.
Prenons ce diagramme pour voir comment cela fonctionne dans Logto,
Provisionnement SSO d'entreprise
Si tu as configuré un SSO d'entreprise dans Logto, tu peux sélectionner ton SSO d'entreprise pour activer le provisionnement Just-in-Time.
Les nouveaux utilisateurs ou les utilisateurs existants se connectant via le SSO d'entreprise pour la première fois rejoindront automatiquement l'organisation et obtiendront les rôles organisationnels par défaut.
Le tableau suivant énumère les flux potentiels :
Statut de l'utilisateur | Description du flux |
---|---|
L'utilisateur n'existe pas et le JIT est activé. | L'utilisateur est créé et rejoint automatiquement l'organisation correspondante avec les rôles appropriés. |
L'utilisateur existe avec la même adresse email vérifiée que le SSO d'entreprise et le JIT est activé. | L'adresse e-mail de l'utilisateur est automatiquement liée au compte SSO d'entreprise, et il rejoint l'organisation correspondante avec les rôles appropriés. |
L'utilisateur n'existe pas et le JIT n'est pas activé. | Flux d'échec SSO normal. |
L'utilisateur existe et le JIT n'est pas activé. | Flux SSO normal. |
Provisionnement par domains d'emails
Si une organisation ne dispose pas d'un SSO d'entreprise dédié, tu peux utiliser des domaines d'emails pour activer le provisionnement Just-in-Time. Cela se produit généralement pour les petites entreprises qui n'ont pas le budget pour un SSO d'entreprise mais qui souhaitent tout de même un certain niveau d'automatisation d'intégration des membres et de gestion de la sécurité.
Lorsque les utilisateurs s'inscrivent, si leurs adresses email vérifiées correspondent aux domaines d'email configurés au niveau de l'organisation, ils seront provisionnés pour les organisations correspondantes avec les rôles correspondants.
Le provisionnement par domaine d'email fonctionne pour :
- Authentification par inscription par email
- Authentification par inscription sociale
Flux d'emails
Statut de l'utilisateur | Description du flux |
---|---|
L'utilisateur n'existe pas et s'inscrit par email, et le JIT est activé. | L'utilisateur est créé et rejoint automatiquement l'organisation correspondante avec les rôles appropriés. |
L'utilisateur existe avec la même adresse email vérifiée que les domaines d'email provisionnés, et le JIT est activé. | Flux de connexion par email normal. |
L'utilisateur n'existe pas et s'inscrit par email, et le JIT n'est pas activé. | Flux d'inscription par email normal. |
L'utilisateur existe et s'inscrit par email, et le JIT n'est pas activé. | Flux de connexion par email normal. |
Flux sociaux
Statut de l'utilisateur | Description du flux |
---|---|
L'utilisateur n'existe pas, s'inscrit avec un compte social utilisant une adresse email vérifiée, et le JIT est activé. | L'utilisateur est créé et rejoint automatiquement l'organisation correspondante avec les rôles appropriés. |
L'utilisateur n'existe pas, s'inscrit avec un compte social utilisant une adresse email non vérifiée ou sans email, et le JIT est activé. | Flux d'inscription sociale normal. |
L'utilisateur existe avec la même adresse email vérifiée que les domaines d'email provisionnés, se connecte via un compte social, et le JIT est activé. | Flux de connexion sociale normal. |
L'utilisateur n'existe pas, s'inscrit avec un compte social, et le JIT n'est pas activé. | Flux d'inscription sociale normal. |
L'utilisateur existe, se connecte avec un compte social, et le JIT n'est pas activé. | Flux de connexion sociale normal. |
Gestion du provisionnement par domaine d'email et le conflit potentiel avec le SSO d'entreprise
Si tu as initialement configuré le provisionnement par domaine d'email et que tu configures ensuite un SSO d'entreprise avec le même domaine d'email, voici ce qui se passe :
Lorsque l'utilisateur entre son adresse email, il sera redirigé vers le flux SSO, contournant l'authentification par email. Cela signifie que le processus JIT ne sera pas déclenché.
Pour résoudre ce problème, nous afficherons un message d'avertissement lors de la configuration. Assure-toi de gérer ce flux en sélectionnant le SSO correct pour activer le provisionnement Just-in-Time, et ne te fie pas au provisionnement par domaine d'email.
Rôles organisationnels par défaut
Lors du provisionnement d'utilisateurs, tu peux définir leurs rôles organisationnels par défaut. La liste des rôles provient du modèle d'organisation, et tu peux choisir un rôle ou le laisser vide.
Mise à jour Just-in-Time par SSO d'entreprise
Heureusement, nous avons déjà cette fonctionnalité intégrée dans SSO d'entreprise ! Tu peux choisir si les informations de profil sont synchronisées avec Logto lors de la première connexion ou à chaque connexion. Nous envisagerons également d'ajouter plus de fonctionnalités comme le mappage des rôles et des organisations et le reprovisionnement à l'avenir.
Consulte ceci pour en savoir plus.
La fonctionnalité Just-in-Time est immédiatement disponible dans Logto. Inscris-toi à Logto aujourd'hui et commence à automatiser l'intégration des membres pour tes clients.