Comprendere il provisioning Just-in-Time
Il provisioning Just-in-Time è un processo utilizzato nei sistemi di gestione dell'identità e dell'accesso per creare account utente al volo man mano che gli utenti accedono a un sistema per la prima volta. Questo articolo spiega le basi del provisioning Just-in-Time e risponde alle domande comuni sulla sua implementazione.
Prima di discutere il provisioning Just-in-Time, immagina di costruire un'app SaaS B2B e vuoi supportare le funzionalità di adesione, permettendo ai membri di unirsi facilmente al tuo spazio di lavoro (tenant). Quali funzionalità proporresti? Ecco una lista di controllo per te:
Scenario | Flusso |
---|---|
Invito dell'amministratore | Gli utenti possono ricevere un invito tramite email per unirsi all'organizzazione. |
Creazione o importazione utente API di gestione | Gli utenti possono utilizzare un account utente pre-creato per unirsi all'organizzazione. |
Provisioning Just-in-Time | Gli utenti che accedono all'app per la prima volta possono unirsi all'organizzazione. |
Sincronizzazione della directory (es. SCIM) | Usa la funzionalità di sincronizzazione della directory dell'IdP per il pre-provisioning degli utenti nell'app. |
Il provisioning Just-in-Time (JIT) è un processo utilizzato nei sistemi di gestione dell'identità e dell'accesso per creare account utente al volo quando si accede a un sistema per la prima volta. Invece di pre-provisionare gli account utente in anticipo, il provisioning JIT crea e configura dinamicamente gli account utente necessari quando un utente si autentica. Il provisioning Just-in-Time è una funzionalità popolare con sue caratteristiche peculiari, come efficienza, nessun coinvolgimento amministrativo e automazione dell'adesione all'organizzazione, ecc. Ora che hai compreso le basi del provisioning Just-in-Time, potresti avere diverse domande mentre ti immergi più a fondo nello sviluppo di prodotti nel mondo reale. Risponderò a queste domande, che possono essere controverse e altamente dipendenti dai tuoi casi aziendali specifici.
Hai bisogno di implementare il provisioning Just-in-Time per il tuo prodotto?
Questi casi sono comuni quando si costruisce un'app B2B che coinvolge architettura multi-tenant, SSO aziendale, collaborazione con imprese o richiede funzionalità per l'onboarding del team. Ecco alcuni scenari di esempio che il tuo cliente potrebbe incontrare.
Onboarding rapido
Hai un cliente che sta attraversando una frequente assunzione o una rapida crescita e può utilizzare il provisioning JIT per configurare rapidamente gli account utente per i nuovi dipendenti. Prendiamo un esempio:
Sarah è una nuova dipendente presso l'azienda SuperFantasy
, che utilizza Okta
come proprio Identity Provider aziendale. Il team delle risorse umane aggiunge una sola volta il suo account aziendale [email protected]
in Okta. Quando Sarah utilizza questa email per accedere a un'app di produttività aziendale chiamata Smartworkspace
per la prima volta, il sistema crea automaticamente un account e assegna il ruolo corretto all'interno dello spazio di lavoro dell'azienda. In questo modo, né Sarah né il team delle risorse umane di SuperFantasy devono affrontare più passaggi per la creazione dell'account e l'assegnazione del ruolo.
Fusioni, acquisizioni e lavoratori temporanei
Hai un cliente che sta attraversando una fusione o acquisizione di altre aziende, il provisioning JIT può semplificare il processo di concessione dell'accesso ai sistemi dell'azienda acquirente per molti nuovi utenti. Prendiamo un altro esempio,
Peter lavora per MagicTech
, che è stata recentemente acquisita da SuperFantasy
. MagicTech è un'organizzazione più piccola senza SSO aziendale, ma utilizza anche Smartworkspace
e Peter ha già un account aziendale.
Il team delle risorse umane può aggiungere Peter in Okta
. Quando Peter accede per la prima volta a Smartworkspace tramite Okta, il sistema collega automaticamente il suo account aziendale esistente e gli concede l'accesso appropriato a SuperFantasy.
Gli scenari sopra menzionati sono ideali per l'implementazione della funzionalità JIT.
È specifico per SAML e SSO aziendale?
Il provisioning Just-in-Time (JIT) è spesso associato al Single sign-on (SSO) nell'autenticazione SAML, ma non è esclusivo di SAML. Il provisioning JIT può essere utilizzato anche con altri protocolli di autenticazione come OAuth 2.0 e OpenID Connect, e non richiede necessariamente una configurazione SSO aziendale.
Ad esempio, il provisioning JIT basato su email può semplificare l'onboarding del team aggiungendo automaticamente gli utenti a uno spazio di lavoro in base al loro dominio email. Questo è particolarmente utile per le organizzazioni che non hanno il budget e le risorse per acquistare e gestire l'SSO aziendale.
L'idea fondamentale dietro al provisioning JIT è automatizzare la creazione o l'aggiornamento dell'account utente quando un utente tenta per la prima volta di accedere a un servizio, indipendentemente dal protocollo specifico utilizzato.
Si applica ai nuovi utenti o agli utenti esistenti dell'app?
Questa è una domanda difficile. Il provisioning Just-in-Time (JIT) generalmente si riferisce al primo tentativo di accesso a un'app. Tuttavia, diversi prodotti percepiscono questa funzionalità in modo diverso. Alcuni utilizzano il provisioning JIT solo per la creazione dell'identità e dell'account, mentre altri includono anche aggiornamenti Just-in-Time dell'account, come il re-provisioning e la sincronizzazione degli attributi.
Oltre alla creazione automatica dell'utente, il provisioning SAML JIT consente di concedere e revocare l'appartenenza ai gruppi come parte del provisioning. Può anche aggiornare gli utenti provisionati per mantenere i loro attributi nello store del Service Provider (SP) sincronizzati con gli attributi dell'utente nello store dell'Identity Provider (IDP).
Ad esempio, in Oracle Cloud, il provisioning Just-in-Time può essere configurato in vari modi.
- Creazione Just-in-Time
- Aggiornamento Just-in-Time
Amministrare Oracle Identity Cloud Service: Comprendere il provisioning SAML Just-in-Time.
Quando si accede, l'utente: | Flusso |
---|---|
Esiste e il provisioning JIT è abilitato. | Flusso normale di fallimento SSO. |
Non esiste e la creazione JIT è abilitata. | L'utente viene creato e popolato con gli attributi dell'assertione SAML, come mappato nella configurazione JIT. |
Esiste e l'aggiornamento JIT è abilitato. | I valori degli attributi dell'utente vengono aggiornati con gli attributi dell'assertione SAML, come mappato nella configurazione JIT. |
Se vuoi considerare lo scenario di accesso successivo degli utenti esistenti, assicurati di avere un sistema di provisioning robusto insieme al tuo sistema JIT. Ad esempio,
- Risoluzione dei conflitti: Il tuo sistema dovrebbe avere una strategia per gestire i conflitti se esiste già un account con informazioni diverse da quelle fornite dall'IdP durante il processo JIT. Questo potrebbe richiedere un controllo dettagliato delle politiche della tua organizzazione e della configurazione dell'IdP.
- Registro delle attività: È importante mantenere i log sia delle nuove creazioni di account che degli aggiornamenti degli account esistenti tramite processi JIT per motivi di sicurezza e conformità.
- Prestazioni: Sebbene il provisioning JIT avvenga rapidamente, considera l'impatto potenziale sui tempi di accesso, soprattutto per gli utenti esistenti se stai aggiornando le loro informazioni a ogni accesso.
- Coerenza dei dati: Assicurati che il tuo processo di provisioning JIT mantenga la coerenza dei dati, soprattutto quando aggiorni account utente esistenti.
Qual è la differenza tra JIT e SCIM?
Oltre al provisioning Just-in-Time (JIT), potresti aver sentito parlare di SCIM (System for Cross-domain Identity Management). SCIM è un protocollo standard aperto progettato per semplificare e automatizzare la gestione dell'identità degli utenti attraverso diversi sistemi e domini. Viene comunemente utilizzato negli scenari di sincronizzazione della directory.
La principale differenza tra JIT e SCIM è che JIT crea account durante il tentativo di accesso dell'utente, mentre SCIM può provisionare utenti tramite un processo automatizzato offline, indipendente dai tentativi di accesso dell'utente.
Ciò significa che JIT si concentra sull'onboarding dei nuovi utenti, mentre SCIM si concentra sulla gestione del ciclo di vita completo degli utenti.
Inoltre, JIT è spesso un'estensione di SAML e manca di un'implementazione standardizzata tra i vari sistemi, mentre SCIM è un protocollo ben definito e standardizzato (RFC 7644) per la gestione dell'identità.
Alcune organizzazioni più grandi utilizzano SCIM per il provisioning degli account, integrandolo con i propri sistemi. Questo può essere molto complesso e variare caso per caso. Queste organizzazioni spesso hanno un sistema di provisioning che coinvolge sia processi automatizzati che il coinvolgimento manuale degli amministratori.
Provisioning Just-in-Time su Logto
Provisioning SSO Just-in-Time e Provisioning Just-in-Time tramite email sono ciò che abbracciamo in Logto.
In Logto, abbiamo questa funzionalità a livello di organizzazione che consente agli utenti di unirsi automaticamente all'organizzazione e ricevere assegnazioni di ruolo se soddisfano criteri specifici.
Implementiamo la funzione JIT al livello più scalabile e sicuro per semplificare e automatizzare il processo di provisioning per gli sviluppatori che onboarding i loro clienti. Tuttavia, come discusso in precedenza, poiché i sistemi di provisioning possono essere complessi e su misura per le esigenze specifiche dei tuoi clienti, dovresti sfruttare le funzionalità JIT pre-costruite di Logto, il design accurato del tuo sistema e l'API di gestione di Logto per costruire un sistema di provisioning robusto.
Esaminiamo questo diagramma per vedere come funziona su Logto,
Provisioning SSO aziendale
Se hai configurato SSO aziendale in Logto, puoi selezionare il SSO aziendale della tua organizzazione per abilitare il provisioning just-in-time.
I nuovi o esistenti utenti che accedono tramite SSO aziendale per la prima volta si uniranno automaticamente all'organizzazione e otterranno i ruoli organizzativi predefiniti.
La seguente tabella elenca i flussi potenziali:
Stato dell'utente | Descrizione del flusso |
---|---|
L'utente non esiste e il JIT è abilitato. | L'utente viene creato e si unisce automaticamente all'organizzazione corrispondente con i ruoli appropriati. |
L'utente esiste con lo stesso indirizzo email verificato del SSO aziendale e il JIT è abilitato. | L'indirizzo email dell'utente viene automaticamente associato all'account SSO aziendale e si unisce all'organizzazione corrispondente con i ruoli appropriati. |
L'utente non esiste e il JIT non è abilitato. | Flusso normale di fallimento SSO. |
L'utente esiste e il JIT non è abilitato. | Flusso SSO normale. |
Provisioning tramite dominio email
Se un'organizzazione non ha un SSO aziendale dedicato, puoi utilizzare i domini email per abilitare il provisioning Just-in-Time. Questo si verifica generalmente nelle aziende più piccole che non hanno il budget per SSO aziendale ma desiderano comunque un certo livello di automazione dell'onboarding dei membri e di gestione della sicurezza.
Quando gli utenti si registrano, se i loro indirizzi email verificati corrispondono ai domini email configurati a livello organizzativo, verranno provisionati all'organizzazione appropriata con i ruoli corrispondenti.
Il provisioning tramite dominio email funziona per:
- Autenticazione tramite registrazione via email
- Autenticazione tramite registrazione sui social
Flusso email
Stato dell'utente | Descrizione del flusso |
---|---|
L'utente non esiste e si registra con email, e il JIT è abilitato. | L'utente viene creato e si unisce automaticamente all'organizzazione corrispondente con i ruoli appropriati. |
L'utente esiste con lo stesso indirizzo email verificato dei domini email provisionati e il JIT è abilitato. | Flusso normale di accesso via email. |
L'utente non esiste e si registra con email, e il JIT non è abilitato. | Flusso normale di registrazione via email. |
L'utente esiste e si accede con email, e il JIT non è abilitato. | Flusso normale di accesso via email. |
Flusso social
Stato dell'utente | Descrizione del flusso |
---|---|
L'utente non esiste, si registra con l'account social utilizzando un'email verificata, e il JIT è abilitato. | L'utente viene creato e si unisce automaticamente all'organizzazione corrispondente con i ruoli appropriati. |
L'utente non esiste, si registra con l'account social utilizzando un'email non verificata o nessuna email, e il JIT è abilitato. | Flusso normale di registrazione social. |
L'utente esiste con lo stesso indirizzo email verificato dei domini email provisionati, si accede tramite account social, e il JIT è abilitato. | Flusso normale di accesso social. |
L'utente non esiste, si registra con l'account social, e il JIT non è abilitato. | Flusso normale di registrazione social. |
L'utente esiste, si accede tramite account social, e il JIT non è abilitato. | Flusso normale di accesso social. |
Gestione del potenziale conflitto tra provisioning tramite dominio email e SSO aziendale
Se hai configurato inizialmente il provisioning tramite dominio email e successivamente configuri un SSO aziendale con lo stesso dominio email, ecco cosa succede:
Quando un utente inserisce il proprio indirizzo email, verrà reindirizzato al flusso SSO, saltando l'autenticazione tramite email. Questo significa che il processo JIT non verrà avviato.
Per affrontare questo problema, verrà mostrato un messaggio di avviso durante la configurazione. Assicurati di gestire questo flusso selezionando il corretto SSO per abilitare il provisioning just-in-time, e non fare affidamento sul provisioning tramite dominio email.
Ruoli predefiniti dell'organizzazione
Durante il provisioning degli utenti, puoi impostare i loro ruoli predefiniti nell'organizzazione. L'elenco dei ruoli proviene dal template dell'organizzazione e puoi scegliere un ruolo o lasciarlo vuoto.
Aggiornamento Just-in-Time SSO aziendale
Fortunatamente, abbiamo già questa funzionalità integrata nello SSO aziendale! Puoi scegliere se sincronizzare le informazioni del profilo su Logto al primo accesso o ogni volta che si effettua l'accesso. Stiamo anche considerando l'aggiunta di ulteriori funzionalità come la mappatura dei ruoli e delle organizzazioni e il re-provisioning in futuro.
Controlla questo per saperne di più.
La funzionalità Just-in-Time è disponibile immediatamente su Logto. Iscriviti a Logto oggi stesso e inizia ad automatizzare l'onboarding dei tuoi clienti.