Ce guide accompagne les administrateurs d’entreprise tout au long du cycle de vie du SSO avec Devin — de la mise en place initiale à la configuration des groupes de l’IdP — et explique comment Devin gère le provisionnement des utilisateurs sans SCIM. Pour les instructions de configuration propres à chaque fournisseur, consultez Okta, Azure AD, SAML ou Generic OIDC.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. Configurer le SSO (authentification unique)
Création de votre application SSO
| Type de connexion | Protocole | Éléments à fournir |
|---|---|---|
| Okta | OIDC (Okta Workforce Identity) | Domaine Okta, ID client, secret client, périmètres |
| Azure AD | OIDC (Microsoft Entra ID) | Domaine Azure AD, ID client, secret client |
| SAML | SAML 2.0 (tout IdP) | URL de connexion, certificat de signature X.509 |
| OIDC générique | OIDC | URL de découverte, ID client, secret client, périmètres |
Vous devez également fournir votre ou vos domaines de messagerie vérifiés afin que Devin sache quelles adresses e-mail considérer comme fiables lorsqu’elles proviennent de votre IdP.
Ce qui se passe après la configuration
- La connexion SSO est associée à votre entreprise Devin
- Ajout automatique à l’entreprise lors de la connexion est activé — tout utilisateur qui s’authentifie via le SSO est automatiquement ajouté à votre entreprise
- Votre ou vos domaines de messagerie sont enregistrés comme domaines de confiance — seules les adresses e-mail provenant de ces domaines sont acceptées
- Attribution des rôles basée sur les groupes (RBAC) est activée — les groupes IdP transmis lors de la connexion peuvent être associés à des rôles Devin
- Les connexions sociales par défaut (Google, GitHub) sont désactivées — le SSO devient la méthode d’authentification obligatoire
L’expérience de connexion utilisateur
- L’utilisateur accède à votre URL Devin
- Il est redirigé vers l’IdP configuré (Okta, Azure AD, etc.)
- L’utilisateur s’authentifie normalement
- L’IdP renvoie à Devin les informations de l’utilisateur et ses appartenances à des groupes
- Devin effectue automatiquement les actions suivantes :
- Crée le compte de l’utilisateur s’il s’agit de sa première connexion (provisionnement juste-à-temps)
- Lui attribue le rôle Enterprise Member par défaut
- Synchronise ses appartenances aux groupes de l’IdP — ajoute les nouveaux groupes et supprime les groupes obsolètes
- Enregistre la connexion dans le journal d’audit de l’entreprise
Administration en libre-service
Gestion des groupes du fournisseur d’identité
- Voir tous les groupes synchronisés lors des connexions des utilisateurs
- Attribuer un groupe à un rôle au niveau de l’Enterprise (p. ex., « Tous les membres de
Engineering-Adminsobtiennent le rôle Enterprise Admin ») - Attribuer un groupe à des orgs spécifiques avec des rôles spécifiques (p. ex., «
Team-Backendobtient l’accès Member dans l’org Backend ») - Ajouter ou supprimer en masse des groupes dans plusieurs orgs
- Voir à combien d’orgs chaque groupe est attribué
Gestion des membres
- Afficher tous les membres Enterprise, y compris leurs appartenances aux groupes IdP
- Inviter de nouveaux membres par e-mail
- Mettre à jour les rôles des membres
- Supprimer des membres
Rôles personnalisés
- Créez des rôles personnalisés avec des autorisations granulaires
- Attribuez des rôles personnalisés à des utilisateurs ou à des groupes IdP
API d’automatisation
| Action | endpoint API |
|---|---|
| Lister tous les membres | GET /v2/enterprise/members |
| Inviter des utilisateurs par e-mail (en masse) | POST /v2/enterprise/members/invite |
| Supprimer un membre | DELETE /v2/enterprise/members/{user_id} |
| Mettre à jour en masse les rôles des membres | PATCH /v2/enterprise/members/roles |
| Migrer des membres d’un rôle à un autre | PATCH /v2/enterprise/members/migrate-roles |
| Lister tous les rôles | GET /v2/enterprise/roles |
| Lister tous les groupes IdP | GET /v2/enterprise/groups |
| Créer à l’avance des groupes IdP | PUT /v2/enterprise/groups |
| Récupérer les affectations d’org d’un groupe | GET /v2/enterprise/groups/{group_name} |
2. Comprendre Devin sans SCIM
Provisionnement des utilisateurs : déclenché uniquement lors de la connexion
| Avec SCIM | Devin (sans SCIM) | |
|---|---|---|
| Comment les utilisateurs sont créés | L’IdP crée immédiatement l’utilisateur dans l’application dès qu’il lui est attribué | L’utilisateur n’existe dans Devin qu’après sa première connexion SSO — ou après une invitation manuelle via l’interface utilisateur ou l’API |
| Quand cela se produit | L’administrateur attribue l’application à l’utilisateur → l’utilisateur apparaît en quelques secondes | L’administrateur attribue l’application à l’utilisateur → rien ne se passe dans Devin tant qu’il ne se connecte pas |
| Préprovisionnement | Le compte utilisateur est prêt avant même que l’utilisateur n’accède à l’application | Aucun préprovisionnement, sauf si l’administrateur l’invite explicitement via l’interface utilisateur de Devin ou l’API |
Déprovisionnement des utilisateurs : manuel uniquement
| Avec SCIM | Devin (sans SCIM) | |
|---|---|---|
| Mode de suppression des utilisateurs | L’IdP désactive/supprime l’utilisateur → l’application désactive immédiatement l’utilisateur | Désactiver/supprimer un utilisateur dans l’IdP n’a aucun effet dans Devin |
| Départ | L’employé quittant l’entreprise perd l’accès en quelques minutes | L’employé quittant l’entreprise conserve l’accès jusqu’à sa suppression manuelle de Devin et l’expiration de sa session |
| Conformité | Conformité automatisée — aucun compte orphelin | Risque de comptes orphelins, sauf si l’administrateur gère les deux systèmes |
Synchronisation des groupes : à la connexion uniquement, pas en temps réel
| Avec SCIM (Group Push) | Devin (sans SCIM) | |
|---|---|---|
| Moment de la synchronisation | L’IdP répercute en temps réel les modifications d’appartenance aux groupes | Les groupes se synchronisent uniquement lorsque l’utilisateur se connecte |
| Ajout à un groupe | L’administrateur ajoute l’utilisateur au groupe → l’application le reflète immédiatement | L’administrateur ajoute l’utilisateur au groupe → Devin ne le prend en compte qu’à la prochaine connexion de l’utilisateur |
| Retrait d’un groupe | L’administrateur retire l’utilisateur du groupe → l’application le reflète immédiatement | L’administrateur retire l’utilisateur du groupe → Devin continue d’afficher l’ancienne appartenance jusqu’à la prochaine connexion |
| Source de référence | L’IdP est toujours la source de référence | L’IdP n’est la source de référence qu’au moment de la connexion — des écarts peuvent apparaître entre deux connexions |
Alternatives natives à SCIM
- Provisionnement juste-à-temps — les utilisateurs sont créés automatiquement lors de leur première connexion SSO avec le rôle d’entreprise par défaut
- Synchronisation complète des groupes à chaque connexion — chaque fois qu’un utilisateur se connecte, Devin effectue un diff complet de ses groupes IdP : il ajoute les nouveaux et supprime les anciens
- RBAC basé sur les groupes — vous pouvez associer des groupes IdP à des rôles d’entreprise et à l’accès aux organisations dans les Settings de Devin, avec prise d’effet lors de la prochaine connexion
- API V2 pour l’automatisation — les invitations, suppressions et modifications de rôle en masse peuvent être scriptées pour combler les lacunes de provisionnement et de déprovisionnement
- Journaux d’audit — chaque connexion est enregistrée, ce qui permet de savoir qui a accédé à Devin
3. Configuration des groupes gérés par l’IdP
Contexte : groupes SCIM vs groupes IdP
- Groupes SCIM : L’application cible indique à l’IdP quels groupes existent (l’IdP les « importe »). L’application est la source de référence pour la structure des groupes. L’IdP synchronise les utilisateurs dans ces groupes définis par l’application.
- Groupes IdP (ce qu’utilise Devin) : L’IdP est la source de référence. Les groupes sont définis dans l’annuaire de l’IdP, et les appartenances aux groupes sont transmises à Devin via des assertions SAML/OIDC au moment de la connexion.
Étape 1 : Définir les groupes dans l’IdP
- Accédez à Directory → Groups
- Créez des groupes correspondant aux niveaux d’accès à Devin (p. ex.,
Devin-Engineering,Devin-Admins,Devin-DataScience) - Assignez les utilisateurs à ces groupes
Étape 2 : Configurer les attributs de groupe dans l’application IdP
Pour les connexions SAML
- Accédez à Applications → [application Devin] → SAML Settings → Modifier
- Sous Déclarations d’attribut de groupe, ajoutez :
- Nom :
groups - Filtre : « Commence par » →
Devin-(ou utilisez « Correspond à l’expression régulière » pour des motifs plus complexes)
- Nom :
- Cela indique à l’IdP d’inclure les noms des groupes correspondants dans l’assertion SAML
Pour les connexions OIDC
- Accédez à Applications → [application Devin] → Connexion → Modifier
- Sous OpenID Connect ID Token → Type de revendication de groupes, sélectionnez “Filtre”
- Réglez le filtre pour qu’il corresponde aux groupes Devin (p. ex., “Commence par” →
Devin-)
Étape 3 : Associer les groupes aux rôles et aux organisations dans Devin
Dans l’interface Devin
- Settings → Enterprise → Groupes du fournisseur d’identité
- Les groupes apparaissent automatiquement dès qu’un membre du groupe se connecte
- Cliquez sur un groupe → attribuez-lui un rôle à l’échelle de l’entreprise (p. ex. Enterprise Admin ou un rôle personnalisé)
- Cliquez sur un groupe → affectez-le à des orgs spécifiques avec des rôles spécifiques au niveau de l’org
Par l’API (pour la pré-configuration ou l’automatisation)
- Créez les groupes à l’avance avant toute connexion :
PUT /v2/enterprise/groups - Listez les groupes et les organisations auxquelles ils sont attribués :
GET /v2/enterprise/groups
Étape 4 : si vous migrez depuis des groupes SCIM dans d’autres applications
- Arrêtez l’importation des groupes SCIM dans les autres applications :
- Dans l’IdP : accédez à l’onglet Provisioning → Integration → décochez “Import Groups”
- Cela empêche l’application cible d’être la source de référence pour les groupes
- Créez des groupes correspondants dans l’annuaire de l’IdP :
- Accédez à Directory → Groups et créez des groupes qui correspondent à ceux qui existaient dans l’application cible
- Attribuez les utilisateurs à ces groupes natifs de l’IdP
- Configurez Group Push (pour les applications qui le prennent en charge) :
- Dans la configuration IdP de l’application : onglet Push Groups → recherchez les groupes par nom → liez-les aux groupes cibles existants
- Cela amène l’IdP à remplacer l’appartenance interne de l’application — l’IdP devient l’unique source de référence
- Devin n’a pas besoin de Group Push, car il lit directement les groupes à partir de l’assertion d’authentification
- Désactivez la synchronisation des groupes SCIM dans les autres applications :
- Assurez-vous que “Import Groups” reste désactivé pour empêcher l’application cible de redevenir la source de référence
Points clés à retenir
Renommage des groupes dans l'IdP
Renommage des groupes dans l'IdP
Si un groupe est renommé, Devin le considère comme un nouveau groupe. Les mappages de rôles de l’ancien groupe ne sont pas transférés automatiquement — vous devrez reconfigurer le nouveau nom de groupe dans les Settings de Devin.
L'ajout à un groupe ne donne pas un accès immédiat à Devin
L'ajout à un groupe ne donne pas un accès immédiat à Devin
Un utilisateur ajouté à un groupe IdP mappé à Devin n’obtiendra cet accès qu’après s’être connecté.
Le retrait d'un groupe n'entraîne pas la suppression immédiate de l'accès à Devin
Le retrait d'un groupe n'entraîne pas la suppression immédiate de l'accès à Devin
Retirer un utilisateur d’un groupe IdP ne révoque pas immédiatement son accès à Devin. Lors de sa prochaine connexion, Devin synchronise et supprime l’appartenance à l’ancien groupe devenue obsolète. Toute appartenance directe (attribuée en dehors des groupes) n’est pas affectée.
Les noms de groupes doivent correspondre exactement
Les noms de groupes doivent correspondre exactement
Le nom du groupe dans l’IdP doit correspondre exactement à ce que Devin voit. La casse est prise en compte.
Pas de groupes imbriqués
Pas de groupes imbriqués
Devin ne prend pas en charge les groupes imbriqués/hiérarchiques. Si l’IdP envoie un groupe parent, les membres des groupes enfants ne sont pas inclus automatiquement. Chaque groupe doit être attribué explicitement.
Configuration recommandée pour un comportement « de type SCIM »
Configurez votre fournisseur d'identité (source de référence)
- Définissez des groupes :
Devin-Admins,Devin-Backend,Devin-Frontend, etc. - Assignez les utilisateurs à des groupes
- Configurez les attributs de groupe SAML/OIDC avec un filtre « Commence par :
Devin-»
Devin se synchronise à chaque connexion
Lorsqu’un utilisateur se connecte via SSO, Devin :
- Crée automatiquement l’utilisateur s’il est nouveau
- Effectue une synchronisation complète des groupes (ajoute les nouveaux groupes et supprime les groupes obsolètes)
- Applique immédiatement les correspondances groupe-rôle et groupe-org
Facultatif : automatisez avec l'API V2
Configurez une tâche planifiée pour combler les lacunes de SCIM :
- Récupérez les utilisateurs actifs depuis l’API de votre IdP
- Récupérez les membres de Devin via
GET /v2/enterprise/members - Invitez les nouveaux employés via
POST /v2/enterprise/members/invite - Supprimez les employés ayant quitté l’entreprise via
DELETE /v2/enterprise/members/{user_id}
Ce que cela vous apporte
- Votre IdP comme source unique de référence pour la structure des groupes et l’appartenance
- Accès automatique basé sur les groupes à chaque connexion
- Provisionnement/déprovisionnement via API pour couvrir ce que SCIM prend normalement en charge
- Journal d’audit complet pour toutes les connexions et les changements d’appartenance
Limites actuelles
- Synchronisation des groupes en temps réel d’une connexion à l’autre — les groupes ne sont mis à jour que lorsque les utilisateurs se connectent
- Révocation instantanée des sessions en cas de déprovisionnement — les sessions restent actives jusqu’à expiration
- Les événements de cycle de vie déclenchés par l’IdP, comme la suspension ou la réactivation, ne sont pas pris en charge
