Questa guida accompagna gli amministratori Enterprise lungo l’intero ciclo di vita di SSO con Devin — dalla configurazione iniziale alla configurazione dei gruppi IdP — e spiega come Devin gestisce il provisioning degli utenti senza SCIM. Per istruzioni di configurazione specifiche per il provider, consulta Okta, Azure AD, SAML o OIDC generico.Documentation Index
Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
Use this file to discover all available pages before exploring further.
1. Configurazione del Single Sign-On (SSO)
Creazione dell’applicazione SSO
| Tipo di connessione | Protocollo | Dati da fornire |
|---|---|---|
| Okta | OIDC (Okta Workforce Identity) | Dominio Okta, ID client, Client Secret, ambiti |
| Azure AD | OIDC (Microsoft Entra ID) | Dominio Azure AD, ID client, Client Secret |
| SAML | SAML 2.0 (qualsiasi IdP) | URL di accesso, certificato di firma X.509 |
| Generic OIDC | OIDC | URL di individuazione, ID client, Client Secret, ambiti |
Dovresti anche fornire i tuoi domini email verificati, in modo che Devin sappia quali indirizzi email considerare attendibili se provenienti dal tuo IdP.
Cosa succede dopo la configurazione
- La connessione SSO viene collegata al tuo account Enterprise di Devin
- Aggiunta automatica dei membri all’accesso è abilitata: qualsiasi utente che si autentica tramite SSO viene aggiunto automaticamente al tuo account Enterprise
- I tuoi domini email vengono registrati come attendibili: sono accettati solo gli indirizzi email provenienti da tali domini
- Assegnazione dei ruoli basata sui gruppi (RBAC) è abilitata: i gruppi IdP inviati durante l’accesso possono essere mappati ai ruoli di Devin
- Gli accessi social predefiniti (Google, GitHub) sono disabilitati: SSO diventa il metodo di autenticazione obbligatorio
L’esperienza di accesso dell’utente
- L’utente apre il tuo URL di Devin
- Viene reindirizzato all’IdP configurato (Okta, Azure AD, ecc.)
- L’utente si autentica normalmente
- L’IdP invia a Devin le informazioni dell’utente e le relative appartenenze ai gruppi
- Devin automaticamente:
- Crea l’account dell’utente al primo accesso (provisioning just-in-time)
- Assegna il ruolo predefinito Enterprise Member
- Sincronizza le appartenenze ai gruppi dell’IdP: aggiunge i nuovi gruppi e rimuove quelli non più validi
- Registra l’accesso nel log di audit dell’Enterprise
Amministrazione self-service
Gestione dei gruppi IdP
- Visualizza tutti i gruppi sincronizzati tramite gli accessi degli utenti
- Assegna un gruppo a un ruolo a livello Enterprise (ad es. “Tutti gli utenti in
Engineering-Adminsricevono il ruolo Enterprise Admin”) - Assegna un gruppo a org specifiche con ruoli specifici (ad es. “
Team-Backendottiene l’accesso Member nell’org Backend”) - Aggiungi o rimuovi in blocco gruppi in più org
- Visualizza a quante org è assegnato ciascun gruppo
Gestione dei membri
- Visualizza tutti i membri dell’Enterprise, inclusi i gruppi IdP a cui appartengono
- Invita nuovi membri via email
- Aggiorna i ruoli dei membri
- Rimuovi i membri
Ruoli personalizzati
- Crea ruoli personalizzati con autorizzazioni granulari
- Assegna ruoli personalizzati a singoli utenti o a gruppi IdP
API per l’automazione
| Azione | Endpoint API |
|---|---|
| Elencare tutti i membri | GET /v2/enterprise/members |
| Invitare utenti via email (in blocco) | POST /v2/enterprise/members/invite |
| Rimuovere un membro | DELETE /v2/enterprise/members/{user_id} |
| Aggiornare in blocco i ruoli dei membri | PATCH /v2/enterprise/members/roles |
| Migrare i membri tra ruoli | PATCH /v2/enterprise/members/migrate-roles |
| Elencare tutti i ruoli | GET /v2/enterprise/roles |
| Elencare tutti i gruppi IdP | GET /v2/enterprise/groups |
| Creare in anticipo i gruppi IdP | PUT /v2/enterprise/groups |
| Recuperare le assegnazioni org di un gruppo | GET /v2/enterprise/groups/{group_name} |
2. Come funziona Devin senza SCIM
Provisioning degli utenti: solo al momento del login
| Con SCIM | Devin (senza SCIM) | |
|---|---|---|
| Come vengono creati gli utenti | L’IdP crea immediatamente l’utente nell’app quando gli viene assegnata | L’utente esiste in Devin solo dopo il primo accesso tramite SSO, oppure dopo un invito manuale tramite UI o API |
| Quando avviene | L’amministratore assegna l’app all’utente → l’utente compare entro pochi secondi | L’amministratore assegna l’app all’utente → in Devin non succede nulla finché l’utente non accede |
| Pre-provisioning | L’account utente è pronto prima ancora che l’utente visiti l’app | Nessun pre-provisioning, a meno che l’amministratore non lo inviti esplicitamente tramite la UI o l’API di Devin |
Deprovisioning degli utenti: solo manuale
| Con SCIM | Devin (senza SCIM) | |
|---|---|---|
| Come vengono rimossi gli utenti | L’IdP disattiva/rimuove l’utente → l’app lo disabilita immediatamente | La disattivazione/rimozione di un utente nell’IdP non ha alcun effetto in Devin |
| Offboarding | Il dipendente in fase di offboarding perde l’accesso nel giro di pochi minuti | Il dipendente in fase di offboarding mantiene l’accesso finché non viene rimosso manualmente da Devin e la sua sessione non scade |
| Conformità | Conformità automatizzata — nessun account orfano | Rischio di account orfani, a meno che l’amministratore non mantenga entrambi i sistemi |
Sincronizzazione dei gruppi: solo al login, non in tempo reale
| Con SCIM (Group Push) | Devin (senza SCIM) | |
|---|---|---|
| Tempistica di sincronizzazione | L’IdP invia in tempo reale le modifiche all’appartenenza ai gruppi | I gruppi si sincronizzano solo quando l’utente effettua il login |
| Aggiunta a un gruppo | L’Admin aggiunge l’utente al gruppo → l’app lo recepisce immediatamente | L’Admin aggiunge l’utente al gruppo → Devin non lo rileva fino al login successivo dell’utente |
| Rimozione da un gruppo | L’Admin rimuove l’utente dal gruppo → l’app lo recepisce immediatamente | L’Admin rimuove l’utente dal gruppo → Devin continua a mostrare la precedente appartenenza fino al login successivo |
| Fonte autorevole | L’IdP è sempre la fonte autorevole | L’IdP è la fonte autorevole solo al login — tra un login e l’altro possono esserci discrepanze |
Alternative integrate a SCIM
- Provisioning just-in-time — gli utenti vengono creati automaticamente al primo accesso SSO con il ruolo Enterprise predefinito
- Sincronizzazione completa dei gruppi a ogni accesso — ogni volta che un utente accede, Devin esegue un diff completo dei suoi gruppi IdP: aggiunge quelli nuovi e rimuove quelli vecchi
- RBAC basato sui gruppi — puoi mappare i gruppi IdP ai ruoli Enterprise e all’accesso all’org nelle Settings di Devin; le modifiche hanno effetto al successivo accesso
- API V2 per l’automazione — inviti, rimozioni e modifiche di ruolo in blocco possono essere automatizzati tramite script per colmare il divario nel provisioning/deprovisioning
- Log di audit — ogni accesso viene registrato, offrendo visibilità su chi ha avuto accesso a Devin
3. Configurazione dei gruppi gestiti dall’IdP
Contesto: gruppi SCIM vs gruppi IdP
- Gruppi SCIM: L’app downstream comunica all’IdP quali gruppi esistono (l’IdP li “importa”). L’app è la fonte autorevole per la struttura dei gruppi. L’IdP sincronizza gli utenti in quei gruppi definiti dall’app.
- Gruppi IdP (quelli usati da Devin): L’IdP è la fonte autorevole. I gruppi sono definiti nella directory dell’IdP e le appartenenze ai gruppi vengono passate a Devin tramite claim SAML/OIDC al momento dell’accesso.
Passaggio 1: Definire i gruppi nell’IdP
- Vai a Directory → Groups
- Crea gruppi che corrispondano ai livelli di accesso di Devin (ad es.
Devin-Engineering,Devin-Admins,Devin-DataScience) - Assegna gli utenti a questi gruppi
Passaggio 2: configura i claim dei gruppi nell’app IdP
Per le connessioni SAML
- Vai a Applications → [Devin App] → SAML Settings → Edit
- In Group Attribute Statements, aggiungi:
- Name:
groups - Filter: “Starts with” →
Devin-(oppure usa “Matches regex” per pattern più complessi)
- Name:
- In questo modo, l’IdP includerà nell’asserzione SAML i nomi dei gruppi corrispondenti
Per le connessioni OIDC
- Vai a Applications → [Devin App] → Sign On → Edit
- In OpenID Connect ID Token → Groups claim type, seleziona “Filter”
- Imposta il filtro in modo che corrisponda ai gruppi Devin (ad es. “Starts with” →
Devin-)
Passaggio 3: associa i Gruppi ai Ruoli e alle org in Devin
Nella UI di Devin
- Settings → Enterprise → Gruppi del provider di identità
- I gruppi compaiono automaticamente dopo l’accesso di un membro del gruppo
- Fai clic su un gruppo → assegnagli un ruolo a livello Enterprise (ad es. Enterprise Admin o un ruolo personalizzato)
- Fai clic su un gruppo → assegnalo a org specifiche con ruoli specifici a livello di org
Tramite l’API (per la configurazione preliminare o l’automazione)
- Crea i gruppi in anticipo, prima che qualcuno acceda:
PUT /v2/enterprise/groups - Elenca i gruppi e le rispettive assegnazioni alle org:
GET /v2/enterprise/groups
Passaggio 4: se esegui la migrazione dai gruppi SCIM in altre app
- Interrompi l’importazione dei gruppi SCIM nelle altre app:
- Nell’IdP: vai alla scheda Provisioning → Integration dell’app → deseleziona “Import Groups”
- In questo modo l’app downstream non sarà più la fonte autorevole per i gruppi
- Crea gruppi corrispondenti nella directory dell’IdP:
- Vai a Directory → Groups e crea gruppi che rispecchino quelli presenti nell’app downstream
- Assegna gli utenti a questi gruppi nativi dell’IdP
- Configura il push dei gruppi (per le app che lo supportano):
- Nella configurazione IdP dell’app: scheda Push Groups → trova i gruppi per nome → collegali ai gruppi downstream esistenti
- In questo modo l’IdP sovrascrive le appartenenze interne dell’app: l’IdP diventa l’unica fonte autorevole
- Devin non richiede il push dei gruppi perché legge i gruppi direttamente dall’asserzione di login
- Disabilita la sincronizzazione dei gruppi SCIM nelle altre app:
- Assicurati che “Import Groups” resti disattivato per evitare che l’app downstream torni a proporsi come fonte autorevole
Considerazioni chiave
Rinomina dei gruppi nell'IdP
Rinomina dei gruppi nell'IdP
Se un gruppo viene rinominato, Devin lo considera un nuovo gruppo. Le mappature dei ruoli del vecchio gruppo non vengono trasferite automaticamente: dovrai riconfigurare il nuovo nome del gruppo nelle Settings di Devin.
L'aggiunta a un gruppo non implica un accesso immediato a Devin
L'aggiunta a un gruppo non implica un accesso immediato a Devin
Un utente aggiunto a un gruppo IdP mappato in Devin non otterrà l’accesso finché non avrà effettuato l’accesso.
La rimozione da un gruppo non implica la rimozione immediata da Devin
La rimozione da un gruppo non implica la rimozione immediata da Devin
La rimozione di un utente da un gruppo IdP non revoca immediatamente il suo accesso a Devin. Al successivo accesso, Devin sincronizza e rimuove l’appartenenza al gruppo non più valida. Eventuali appartenenze dirette (assegnate al di fuori dei gruppi) non vengono influenzate.
I nomi dei gruppi devono corrispondere esattamente
I nomi dei gruppi devono corrispondere esattamente
Il nome del gruppo nell’IdP deve corrispondere esattamente a quello visto da Devin. Fa distinzione tra maiuscole e minuscole.
Nessun gruppo nidificato
Nessun gruppo nidificato
Devin non supporta gruppi nidificati/gerarchici. Se l’IdP invia un gruppo padre, i membri dei gruppi figli non vengono inclusi automaticamente. Ogni gruppo deve essere assegnato esplicitamente.
Configurazione consigliata per un comportamento “simile a SCIM”
Configura il tuo provider di identità (fonte autorevole)
- Definisci i gruppi:
Devin-Admins,Devin-Backend,Devin-Frontend, ecc. - Assegna gli utenti ai gruppi
- Configura i claim di gruppo SAML/OIDC filtrati su “Inizia con:
Devin-”
Devin si sincronizza a ogni accesso
Quando un utente accede tramite SSO, Devin:
- Crea automaticamente l’utente se non esiste ancora
- Esegue una sincronizzazione completa dei gruppi (aggiunge i nuovi gruppi e rimuove quelli obsoleti)
- Applica immediatamente le mappature da gruppo a ruolo e da gruppo a org
Facoltativo: automatizza con l'API V2
Configura un job pianificato per colmare le limitazioni dovute all’assenza di SCIM:
- Leggi gli utenti attivi dalla tua API IdP
- Leggi i membri di Devin da
GET /v2/enterprise/members - Invita i nuovi dipendenti tramite
POST /v2/enterprise/members/invite - Rimuovi i dipendenti che hanno lasciato l’azienda tramite
DELETE /v2/enterprise/members/{user_id}
Cosa ottieni
- Il tuo IdP come fonte autorevole unica per la struttura dei gruppi e l’appartenenza
- Accesso automatico basato sui gruppi a ogni login
- Provisioning/deprovisioning tramite API per colmare il divario che normalmente verrebbe coperto da SCIM
- Audit trail completo di tutti gli accessi e delle modifiche all’appartenenza
Limitazioni attuali
- Sincronizzazione dei gruppi in tempo reale tra un accesso e l’altro — i gruppi si aggiornano solo quando gli utenti effettuano l’accesso
- Revoca immediata delle sessioni in caso di deprovisioning — le sessioni restano attive fino alla scadenza
- Gli eventi del ciclo di vita avviati dall’IdP, come sospensione e riattivazione, non sono supportati
