> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurer le SSO & SCIM

> Configurez l’authentification unique (SSO) et le provisionnement SCIM pour votre organisation à l’aide de Google Workspace, Microsoft Entra ID, Okta ou d’autres fournisseurs d’identité SAML.

<Note>Cette fonctionnalité est uniquement disponible pour les utilisateurs Enterprise.</Note>

<Note>Cette fonctionnalité ne s’applique pas aux plans Cognition Platform. Pour Cognition Platform, le SSO doit être configuré et géré dans les Settings de Cognition Platform à la place.</Note>

<Tabs>
  <Tab title="SSO avec Google">
    Devin Desktop prend désormais en charge la connexion via l’authentification unique (SSO) avec SAML. Si votre organisation utilise Microsoft Entra, Okta, Google Workspace ou un autre fournisseur d’identité compatible avec SAML, vous pourrez utiliser le SSO avec Devin Desktop.

    <Note>Devin Desktop prend uniquement en charge le SSO initié par le SP ; le SSO initié par l’IdP n’est PAS pris en charge actuellement.</Note>

    <div id="configure-idp-application">
      ### Configurer l’application IdP
    </div>

    Dans la console d’administration Google (admin.google.com), cliquez sur **Applications -> Applications Web et mobiles** dans le menu de gauche.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-google.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=7810e96dc693e041669155ed802dadda" width="530" height="788" data-path="desktop/assets/auth/sso-google.png" />
    </Frame>

    Cliquez sur **Ajouter une application**, puis sur **Ajouter une application SAML personnalisée**.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-google2.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=1b16524d7a4910a763158a7b1640261c" width="514" height="534" data-path="desktop/assets/auth/sso-google2.png" />
    </Frame>

    Renseignez le champ **Nom de l’application** avec `Windsurf`, puis cliquez sur **Suivant**.

    L’écran suivant (détails du fournisseur d’identité Google) dans la console Google contient des données que vous devrez copier dans les paramètres SSO de Devin Desktop sur [https://windsurf.com/team/settings](https://windsurf.com/team/settings). Dans les paramètres SSO de Devin Desktop, activez d’abord le bouton bascule **SAML Settings** pour pouvoir modifier les champs.

    * Copiez **URL SSO** depuis la console Google vers les paramètres de Devin Desktop, dans **URL SSO**
    * Copiez **ID d’entité** depuis la console Google vers les paramètres de Devin Desktop, dans **ID d’entité IdP**
    * Copiez **Certificat** depuis la console Google vers les paramètres de Devin Desktop, dans **Certificat X509**
    * Cliquez sur **Continuer** dans la console Google

    L’écran suivant de la console Google vous demande de copier des données depuis la page des paramètres de Codeium

    * Copiez **URL de rappel** depuis la page des paramètres de Codeium vers la console Google, dans **URL ACS**
    * Copiez **ID d’entité SP** depuis la page des paramètres de Codeium vers la console Google, dans **ID d’entité SP**
    * Remplacez le format de **Name ID** par **EMAIL**
    * Cliquez sur **Continuer** dans la console Google

    L’écran suivant de la console Google nécessite quelques réglages

    * Cliquez sur **Ajouter un mappage**, sélectionnez **Prénom** et définissez **Attributs de l’application** sur **firstName**
    * Cliquez sur **Ajouter un mappage**, sélectionnez **Nom** et définissez **Attributs de l’application** sur **lastName**
    * Cliquez sur **Terminer**

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-google3.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=302216735a61b852fe856bdf08662546" width="2078" height="862" data-path="desktop/assets/auth/sso-google3.png" />
    </Frame>

    Sur la page des paramètres de Codeium, avec le bouton bascule **SAML Settings** activé, cliquez sur **Test** pour vérifier que la connexion fonctionne comme prévu. Le bouton **Save** n’apparaît qu’une fois le test réussi ; cliquez sur **Save** pour appliquer la configuration. La connexion via SSO sera alors imposée à tous les utilisateurs.
  </Tab>

  <Tab title="Microsoft Entra ID">
    Devin Desktop Enterprise prend désormais en charge la connexion par authentification unique (SSO) via SAML. Si votre organisation utilise Microsoft Entra ID (anciennement Azure AD), vous pourrez utiliser le SSO avec Devin Desktop.

    <Note>Devin Desktop prend uniquement en charge le SSO initié par le SP ; le SSO initié par l’IdP n’est PAS pris en charge actuellement.</Note>

    <div id="part-1-create-enterprise-application-in-microsoft-entra-id">
      ## Partie 1 : Créer une application Enterprise dans Microsoft Entra ID
    </div>

    <Note>Toutes les étapes de cette section sont effectuées dans le **centre d’administration Microsoft Entra ID**.</Note>

    1. Dans Microsoft Entra ID, cliquez sur **Add**, puis sur **Enterprise Application**.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-azure.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=6d420c5134b4cfe78b0eb4ea8c63102d" width="854" height="384" data-path="desktop/assets/auth/sso-azure.png" />
    </Frame>

    2. Cliquez sur **Create your own application**.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-azure2.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=0d65488fc58dddef5132e2302786d97b" width="680" height="202" data-path="desktop/assets/auth/sso-azure2.png" />
    </Frame>

    3. Nommez votre application **Devin Desktop**, sélectionnez *Integrate any other application you don't find in the gallery*, puis cliquez sur **Create**.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-azure3.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=e8f849cd706fba53560dd24b8c7db2f8" width="968" height="342" data-path="desktop/assets/auth/sso-azure3.png" />
    </Frame>

    <div id="part-2-configure-saml-and-user-attributes-in-microsoft-entra-id">
      ## Partie 2 : Configurer SAML et les attributs utilisateur dans Microsoft Entra ID
    </div>

    <Note>Toutes les étapes de cette section sont effectuées dans le **centre d’administration Microsoft Entra ID**.</Note>

    4. Dans votre nouvelle application Devin Desktop, cliquez sur **Set up single sign on**, puis sur **SAML**.

    5. Cliquez sur **Edit** sous **Basic SAML Configuration**.

    6. **Laissez cet onglet Entra ID ouvert** et ouvrez un nouvel onglet pour accéder aux **paramètres SSO de Devin Desktop Teams** à l’adresse [https://windsurf.com/team/settings](https://windsurf.com/team/settings).

    7. Dans le formulaire de configuration SAML de **Microsoft Entra ID** :
       * **Identifier (Entity ID)** : copiez la valeur **SP Entity ID** depuis la **page des paramètres SSO de Devin Desktop**
       * **Reply URL (Assertion Consumer Service URL)** : copiez la valeur **Callback URL** depuis la **page des paramètres SSO de Devin Desktop**
       * Cliquez sur **Save** en haut de la page

    8. Configurez les attributs utilisateur pour que le nom s’affiche correctement. Dans **Microsoft Entra ID**, sous **Attributes & Claims**, cliquez sur **Edit**.

    9. Créez 2 nouveaux claims en cliquant sur **Add new claim** pour chacun :
       * **Premier claim** : Name = `firstName`, Source attribute = `user.givenname`
       * **Deuxième claim** : Name = `lastName`, Source attribute = `user.surname`

    <div id="part-3-configure-sso-settings-in-devin-desktop-portal">
      ## Partie 3 : Configurer les paramètres SSO dans le portail Devin Desktop
    </div>

    <Note>Terminez la configuration dans le **portail Devin Desktop** ([https://windsurf.com/team/settings](https://windsurf.com/team/settings)).</Note>

    10. Dans la **page des paramètres SSO de Devin Desktop**, activez le bouton bascule **SAML Settings** afin de pouvoir modifier les champs, puis renseignez :
        * **Pick your SSO ID** : choisissez un identifiant unique pour le portail de connexion de votre équipe (il ne pourra pas être modifié par la suite)
        * **IdP Entity ID** : copiez la valeur depuis **Microsoft Entra ID** sous **Set up Devin Desktop** → **Microsoft Entra Identifier**
          <Note>L’URL IdP Entity ID doit se terminer par un `/` final (par ex., `https://sts.windows.net/{tenant-id}/`). Si l’URL n’inclut pas la barre oblique finale, ajoutez-la manuellement.</Note>
        * **SSO URL** : copiez la valeur **Login URL** depuis **Microsoft Entra ID**
        * **X509 Certificate** : téléchargez le **certificat SAML (Base64)** depuis **Microsoft Entra ID**, ouvrez le fichier, puis collez ici son contenu texte

    11. **Testez la configuration** : dans le **portail Devin Desktop**, cliquez sur **Test** pour vérifier que la configuration SSO fonctionne comme prévu.

    12. Une fois le test réussi, cliquez sur **Save** pour appliquer la configuration. Le bouton **Save** n’apparaît qu’après un test réussi.

    <Note>**Important** : ne vous déconnectez pas et ne fermez pas la page des paramètres de Devin Desktop tant que vous n’avez pas testé la connexion avec succès. Si le test échoue, vous devrez peut-être résoudre les problèmes de configuration avant de continuer.</Note>
  </Tab>

  <Tab title="Okta SSO">
    Devin Desktop Enterprise prend désormais en charge la connexion via l’authentification unique (SSO) avec SAML. Si votre organisation utilise Microsoft Entra, Okta, Google Workspaces ou un autre fournisseur d’identité compatible avec SAML, vous pourrez utiliser le SSO avec Devin Desktop.

    <Note>Devin Desktop prend uniquement en charge le SSO initié par le SP ; le SSO initié par l’IdP n’est PAS actuellement pris en charge.</Note>

    <div id="configure-idp-application-2">
      ### Configurer l’application IdP
    </div>

    Cliquez sur Applications dans la barre latérale gauche, puis sur Create App Integration

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-okta1.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=6eb8809b268cee036ff026efbf3d2a8b" width="1248" height="962" data-path="desktop/assets/auth/sso-okta1.png" />
    </Frame>

    Sélectionnez SAML 2.0 comme méthode de connexion

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-okta2.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=8ac307ec0fa12222044fe6bffd8815ff" width="1600" height="1023" data-path="desktop/assets/auth/sso-okta2.png" />
    </Frame>

    Définissez le nom de l’application sur Devin Desktop (ou tout autre nom), puis cliquez sur Next

    Configurez les paramètres SAML comme suit

    * Single sign-on URL sur [https://auth.windsurf.com/\&#95;\&#95;/auth/handler](https://auth.windsurf.com/\&#95;\&#95;/auth/handler)
    * Audience URI (SP Entity ID) sur [www.codeium.com](http://www.codeium.com)
    * NameID format sur EmailAddress
    * Application username sur Email

    Configurez les déclarations d’attributs comme suit, puis cliquez sur **Next**.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-okta3.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=2a8c2ee27d3b989fd3f888178c3fa290" width="1398" height="602" data-path="desktop/assets/auth/sso-okta3.png" />
    </Frame>

    Dans la section feedback, sélectionnez “This is an internal app that we have created”, puis cliquez sur **Finish**.

    <div id="register-okta-as-a-saml-provider">
      ### Enregistrer Okta comme fournisseur SAML
    </div>

    Vous devriez être redirigé vers l’onglet Sign on de votre application SAML personnalisée. Vous devrez ensuite récupérer les informations de cette page et les renseigner dans les paramètres SSO de Devin Desktop.

    * Ouvrez [https://windsurf.com/team/settings](https://windsurf.com/team/settings), puis cliquez sur **Configure** sous **SSO and SAML Configuration**
    * Activez le bouton bascule **SAML Settings** pour pouvoir modifier les champs
    * Copiez le texte après ‘Issuer’ sur la page de l’application Okta et collez-le dans Idp Entity ID
    * Copiez le texte après ‘Sign on URL’ sur la page de l’application Okta et collez-le dans SSO URL
    * Téléchargez le Signing Certificate et collez-le dans X509 certificate
    * Testez la connexion avec le bouton **Test**. Vous devriez voir un message de réussite :

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-okta4.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=2ef70eafed0d4ba96ce4a8edd3fee22e" width="1046" height="270" data-path="desktop/assets/auth/sso-okta4.png" />
    </Frame>

    * Cliquez sur **Save** pour appliquer la configuration. Le bouton **Save** n’apparaît qu’après un test réussi.

    À ce stade, tout devrait être configuré, et vous pouvez désormais ajouter des utilisateurs à la nouvelle application Devin Desktop Okta.

    Vous devez partager l’URL personnalisée du portail de connexion de votre organisation avec vos utilisateurs et leur demander de se connecter via ce lien.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-okta5.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=b5fda36a5d2c90e95351ec8718da43e7" width="988" height="312" data-path="desktop/assets/auth/sso-okta5.png" />
    </Frame>

    Les utilisateurs qui se connectent à Devin Desktop via le SSO seront automatiquement approuvés dans la Team.

    <div id="caveats">
      ### Limitations
    </div>

    Notez que Devin Desktop ne prend actuellement pas en charge les flux de connexion initiés par l’IdP.

    Nous ne prenons pas encore non plus en charge OIDC.

    <div id="troubleshooting">
      # Résolution des problèmes
    </div>

    <div id="login-with-saml-config-failed-firebase-error-authoperation-not-allowed">
      ### La configuration Login with SAML a échoué : Firebase: Error (auth/operation-not-allowed)
    </div>

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-okta6.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=08b82467d671872b5aec9ea7ec5e9894" width="617" height="92" data-path="desktop/assets/auth/sso-okta6.png" />
    </Frame>

    Cela indique que votre identifiant SSO n’est pas valide ou que votre URL SSO est incorrecte. Assurez-vous que cet identifiant est alphanumérique et ne contient pas d’espaces supplémentaires ni de caractères non valides. Veuillez reprendre les étapes du guide et vous assurer d’utiliser les bonnes valeurs.

    <div id="login-with-saml-config-failed-firebase-saml-response-issuer-mismatch-authinvalid-credential">
      ### La configuration Login with SAML a échoué : Firebase: SAML Response \<Issuer> mismatch. (auth/invalid-credential)
    </div>

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/sso-okta7.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=7c2bd2cdffd3a61145313cb209572ae5" width="752" height="117" data-path="desktop/assets/auth/sso-okta7.png" />
    </Frame>

    Cela indique que votre ID d’entité IdP n’est pas valide. Veuillez vous assurer de le copier correctement depuis le portail Okta, sans caractères ni espaces supplémentaires avant ou après la chaîne.

    <div id="failed-to-verify-the-signature-in-samlresponse">
      ### Échec de la vérification de la signature dans samlresponse
    </div>

    Cela indique que la valeur de votre certificat X509 est incorrecte. Veuillez vous assurer de copier la bonne clé et qu’elle est formatée comme suit :

    ```
    -----BEGIN CERTIFICATE-----
    value
    ------END CERTIFICATE------
    ```
  </Tab>

  <Tab title="SCIM Microsoft Entra ID">
    Devin Desktop prend en charge la synchronisation SCIM pour les utilisateurs et les groupes avec Microsoft Entra ID. Il n'est pas nécessaire de configurer le SSO pour utiliser la synchronisation SCIM, mais c'est fortement recommandé.

    Vous aurez besoin de :

    * Accès administrateur à Microsoft Entra ID
    * Accès administrateur à Devin Desktop
    * Une application Devin Desktop existante dans Entra ID (généralement celle utilisée pour votre application SSO existante)

    <Note>
      **Autorisations requises pour la clé de service**

      La clé de service utilisée pour le provisionnement SCIM doit disposer des autorisations suivantes :

      * **Team User Read** - Requise pour lire les informations sur les utilisateurs et les groupes
      * **Team User Update** - Requise pour créer et mettre à jour les utilisateurs et les groupes
      * **Team User Delete** - Requise pour désactiver/supprimer les utilisateurs et les groupes

      Vous pouvez créer un rôle personnalisé avec ces autorisations ou utiliser un rôle d’administrateur existant qui les inclut.
    </Note>

    <div id="step-1-create-a-role-with-scim-permissions">
      ## Étape 1 : Créer un rôle avec des autorisations SCIM
    </div>

    Avant de configurer le provisionnement SCIM, vous devez créer un rôle avec les autorisations requises.

    1. Accédez à [Windsurf Team Settings](https://windsurf.com/team/settings)
    2. Sous "Other Settings", cliquez sur **Configure** à côté de **Role Management**
    3. Cliquez sur **Ajouter un rôle** et nommez-le « SCIM Provisioning »
    4. Ajoutez les autorisations suivantes :
       * Lecture de l’utilisateur Team
       * Mise à jour de l’utilisateur Team
       * Suppression de l’utilisateur Team
    5. Cliquez sur **Enregistrer**

    <div id="step-2-navigate-to-the-existing-devin-desktop-application">
      ## Étape 2 : Accéder à l'application Devin Desktop existante
    </div>

    Accédez à Microsoft Entra ID sur Azure, cliquez sur Enterprise applications dans la barre latérale gauche, puis cliquez sur l'application Devin Desktop existante dans la liste.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=fb5751e72abe48cf1b3538e5a44bdefb" width="1258" height="664" data-path="desktop/assets/auth/scim-azure.png" />
    </Frame>

    <div id="step-3-setup-scim-provisioning">
      ## Étape 3 : Configurer le provisionnement SCIM
    </div>

    Cliquez sur Get started sous Provision User Accounts au centre (étape 3), puis cliquez de nouveau sur Get started.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure2.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=ca6c92bd1b8c613abed615592ae3d2fe" width="2582" height="1858" data-path="desktop/assets/auth/scim-azure2.png" />
    </Frame>

    Sur la page de configuration du provisionnement, sélectionnez les options suivantes.

    Mode de provisionnement :  Automatique

    Admin Credentials > Tenant URL : [https://server.codeium.com/scim/v2](https://server.codeium.com/scim/v2)

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure-admin-credentials.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=96e23cf9346819cc6ffd82cdbf5b6258" width="560" height="416" data-path="desktop/assets/auth/scim-azure-admin-credentials.png" />
    </Frame>

    Laissez la page de provisioning Azure ouverte, puis accédez au portail web Devin Desktop et cliquez sur l'icône de profil dans la barre de navigation en haut de la page. Sous Team Settings, sélectionnez Service Key et cliquez sur Add Service Key. Saisissez un nom de clé (par exemple « Azure SCIM Provisioning »), **sélectionnez le rôle « SCIM Provisioning » que vous avez créé précédemment**, puis cliquez sur Create Service Key. Copiez la clé générée, revenez sur la page Azure et collez-la dans le champ Secret Token.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure3.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=a52f8263be88f02ff8aff6e13024d4eb" width="1612" height="1013" data-path="desktop/assets/auth/scim-azure3.png" />
    </Frame>

    (Ce que vous devriez voir après avoir créé la clé sur Devin Desktop)

    Sur la page de provisionnement, cliquez sur Test Connection ; la connexion SCIM devrait ainsi être vérifiée.

    Au-dessus du formulaire de provisionnement, cliquez sur Enregistrer.

    <div id="step-4-configure-scim-provisioning">
      ## Étape 4 : Configurer le provisionnement SCIM
    </div>

    Après avoir cliqué sur Save, une nouvelle option Mappings devrait apparaître dans la page Provisioning. Développez Mappings, puis cliquez sur Provision Microsoft Entra ID Users

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure4.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=24e984597151c2f9cbb27f1a1718ca8a" width="666" height="438" data-path="desktop/assets/auth/scim-azure4.png" />
    </Frame>

    Sous l'attribut Mappings, supprimez tous les champs sous displayName, en ne conservant que les champs userName, active et displayName.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure5.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=1dc3ac7839403c2ce6cb6d93ff51fc65" width="1260" height="190" data-path="desktop/assets/auth/scim-azure5.png" />
    </Frame>

    Pour active, cliquez maintenant sur Edit. Sous Expression, modifiez le champ en

    ```
    NOT([IsSoftDeleted])
    ```

    Cliquez ensuite sur Ok.

    Vos attributs utilisateur doivent ressembler à ce qui suit

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure6.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=1e2db093b70de25fc98a9ffec9a924a6" width="2826" height="490" data-path="desktop/assets/auth/scim-azure6.png" />
    </Frame>

    Sur la page Attribute Mapping, cliquez sur Save en haut de la page, puis revenez à la page de provisionnement.

    Sur la même page, sous Mappings, cliquez sur Provision Microsoft Entra ID Groups. Cliquez uniquement sur delete pour externalId, puis cliquez sur Save en haut de la page. Revenez à la page Provisioning.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure7.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=8022adf3c12a09dbc8f58177c6e4e3bf" width="1258" height="203" data-path="desktop/assets/auth/scim-azure7.png" />
    </Frame>

    En bas de la page Provisioning, vous devriez également trouver un bouton bascule « Provisioning Status ». Activez-le pour activer la synchronisation SCIM. Désormais, tous les 40 minutes, vos utilisateurs et groupes pour l’application Entra ID seront synchronisés avec Devin Desktop.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/scim-azure8.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=ab5ad845885e6f3e3b915f0112e58eaf" width="686" height="306" data-path="desktop/assets/auth/scim-azure8.png" />
    </Frame>

    Cliquez sur « Save » pour terminer : la synchronisation des utilisateurs et des groupes via SCIM est maintenant activée. Seuls les utilisateurs et groupes attribués à l’application seront synchronisés avec Devin Desktop. Notez que la suppression d’utilisateurs ne fait que désactiver leur accès à Devin Desktop (et libère leur siège) plutôt que de les supprimer définitivement, en raison de la conception SCIM d’Azure.
  </Tab>

  <Tab title="Okta SCIM">
    Devin Desktop prend en charge la synchronisation SCIM des utilisateurs et des groupes avec Okta. Il n'est pas nécessaire de configurer le SSO pour utiliser la synchronisation SCIM, mais cela est fortement recommandé.

    Vous aurez besoin de :

    * d'un accès Admin à Okta
    * d'un accès Admin à Devin Desktop
    * d'une application Devin Desktop existante sur Okta (généralement celle de votre application SSO existante)

    <div id="step-1-navigate-to-the-existing-devin-desktop-application">
      ## Étape 1 : Accéder à l'application Devin Desktop existante
    </div>

    Accédez à Okta, cliquez sur Applications, puis sur Applications dans la barre latérale de gauche, puis cliquez sur l'application Devin Desktop existante dans la liste des applications.

    <div id="step-2-enable-scim-provisioning">
      ## Étape 2 : Activer le provisionnement SCIM
    </div>

    Sous l'onglet General, dans App Settings, cliquez sur Edit en haut à droite. Cochez ensuite la case 'Enable SCIM Provisioning', puis cliquez sur Save. Un nouvel onglet Provisioning devrait alors apparaître en haut.

    Accédez maintenant à Provisioning, cliquez sur Edit et renseignez les champs suivants :

    URL de base du connecteur SCIM : [https://server.codeium.com/scim/v2](https://server.codeium.com/scim/v2)

    Champ d'identifiant unique pour les utilisateurs : email

    Actions de provisionnement prises en charge : Push New Users, Push Profile Updates, Push Groups

    Mode d'authentification : HTTP Header

    Pour HTTP Header - Authorization, vous pouvez générer le jeton depuis

    * [https://windsurf.com/team/settings](https://windsurf.com/team/settings), puis accéder à Service Key Configuration
    * Cliquez sur Configure, puis sur Add Service Key, et donnez un nom à votre API key
    * Copiez l'API key, revenez à Okta et collez-la dans HTTP Header - Authorization

    Cliquez sur Save après avoir renseigné Provisioning Integration.

    <div id="step-3-setup-provisioning">
      ## Étape 3 : Configurer le provisionnement
    </div>

    Sous l'onglet Provisioning, deux nouveaux onglets devraient apparaître à gauche. Cliquez sur To App, puis sur Edit Provisioning to App. Cochez les cases Create Users, Update User Attributes et Deactivate Users, puis cliquez sur Save.

    Après cette étape, tous les utilisateurs attribués au groupe seront synchronisés avec Devin Desktop.

    <div id="step-4-setup-group-provisioning-optional">
      ## Étape 4 : Configurer le provisionnement des groupes (facultatif)
    </div>

    Pour synchroniser des groupes avec Devin Desktop, vous devrez préciser quels groupes envoyer. Sous l'application, cliquez sur l'onglet Push Groups en haut. Cliquez ensuite sur + Push Groups -> Find Groups by name. Filtrez le groupe que vous souhaitez ajouter, assurez-vous que Push group memberships immediately est coché, puis cliquez sur Save. Le groupe sera créé et les membres du groupe seront synchronisés avec Devin Desktop. Les groupes peuvent ensuite être utilisés pour filtrer les analyses par groupe dans la page d'analyse.
  </Tab>

  <Tab title="API SCIM">
    Ce guide explique comment créer et gérer des groupes dans Devin Desktop avec l'API SCIM.

    Il peut être préférable de provisionner des groupes manuellement plutôt que via leur fournisseur d’identité (Azure/Okta). Les entreprises peuvent souhaiter provisionner des groupes depuis une autre source interne (site RH, outil de gestion du code source, etc.) à laquelle Devin Desktop n'a pas accès, ou vouloir un contrôle plus fin sur les groupes que celui offert par leur fournisseur d'identité. Les groupes peuvent donc être créés via une API par des requêtes HTTP. Vous trouverez ci‑dessous des exemples de requêtes HTTP avec cURL.

    Cette section présente 5 API principales : Create Group, Add group members, Replace group members, Delete Group et List Users in a Group.

    <div id="create-group">
      ### Créer un groupe
    </div>

    ```
    curl -k -X POST https://server.codeium.com/scim/v2/Groups -d '{
    "displayName": "<group name>",
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"]
    }' -H "Authorization: Bearer <api secret key>" -H "Content-Type: application/scim+json"
    ```

    <div id="add-group-members">
      ### Ajouter des membres au groupe
    </div>

    ```
    curl -X PATCH https://server.codeium.com/scim/v2/Groups/<group name> -d '{"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations":[
    {
    "op": "add",
    "path":"members",
    "value": [{"value": "<email 1>"}, {"value": "<email 2>"}]
    }]}' -H "Authorization: Bearer <api secret key>" -H "Content-Type: application/scim+json"
    ```

    <div id="replace-group-members">
      ### Remplacer les membres du groupe
    </div>

    ```
    curl -X PATCH https://server.codeium.com/scim/v2/Groups/<group name> -d '{"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations":[
    {
    "op": "replace",
    "path":"members",
    "value": [{"value": "<email 1>"}, {"value": "<email 2>"}]
    }]}' -H "Authorization: Bearer <api secret key>" -H "Content-Type: application/scim+json"
    ```

    <div id="delete-group">
      ### Supprimer le groupe
    </div>

    ```
    curl -X DELETE https://server.codeium.com/scim/v2/Groups/<group name> -H "Authorization: Bearer <api secret key>" -H "Content-Type: application/scim+json"
    ```

    <div id="list-group">
      ### Lister les groupes
    </div>

    ```
    curl -X GET -H "Authorization: Bearer <api secret key>" "https://server.codeium.com/scim/v2/Groups"
    ```

    <div id="list-users-in-a-group">
      ### Lister les utilisateurs d'un groupe
    </div>

    ```
    curl -X GET -H "Authorization: Bearer <api secret key>" "https://server.codeium.com/scim/v2/Groups/<group_id>"
    ```

    Vous devrez au moins créer le groupe d'abord, puis utiliser l'opération "replace group" pour créer un groupe contenant des membres. Vous devrez également encoder les noms de groupe dans l'URL si le nom de votre groupe contient un caractère spécial comme un espace ; par exemple, le nom de groupe 'Engineering Group' devra être 'Engineering%20Group' dans l'URL.

    Notez que les utilisateurs doivent être créés dans Devin Desktop (via SCIM ou en créant le compte manuellement) avant de pouvoir être ajoutés à un groupe.

    <div id="user-apis">
      ## APIs utilisateur
    </div>

    Des API sont également disponibles pour les utilisateurs. Voici quelques-unes des API SCIM courantes prises en charge par Devin Desktop.

    Désactiver un utilisateur (activer en remplaçant false par true) :

    ```
    curl -X PATCH \
      https://server.codeium.com/scim/v2/Users/<user api key> \
      -H 'Content-Type: application/scim+json' \
      -H 'Authorization: Bearer <api secret key>' \
      -d '{
        "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
        "Operations": [
          {
            "op": "replace",
            "path": "active",
            "value": false
          }
        ]
      }'
    ```

    Désactiver l'accès CLI pour un utilisateur (définir `cliActive` sur `true` pour le réactiver) :

    ```
    curl -X PATCH \
      https://server.codeium.com/scim/v2/Users/<user api key> \
      -H 'Content-Type: application/scim+json' \
      -H 'Authorization: Bearer <api secret key>' \
      -d '{
        "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
        "Operations": [
          {
            "op": "replace",
            "path": "cliActive",
            "value": false
          }
        ]
      }'
    ```

    L'attribut `cliActive` contrôle si un utilisateur peut accéder à Devin CLI. Il est indépendant de l'attribut `active` — la désactivation de l'accès CLI n'affecte ni le siège de l'utilisateur ni son accès aux autres produits Devin Desktop. Si `cliActive` n'est pas défini pour un utilisateur, il suit la politique d'accès CLI par défaut de l'équipe.

    Définissez une limite d’ACU (Agent Compute Unit) par cycle et par utilisateur :

    ```
    curl -X PATCH \
      https://server.codeium.com/scim/v2/Users/<user api key> \
      -H 'Content-Type: application/scim+json' \
      -H 'Authorization: Bearer <api secret key>' \
      -d '{
        "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
        "Operations": [
          {
            "op": "replace",
            "path": "acuCycleLimit",
            "value": 100
          }
        ]
      }'
    ```

    Effacer la limite d'ACU par cycle et par utilisateur (l'utilisateur revient aux limites de son Team/groupe) :

    ```
    curl -X PATCH \
      https://server.codeium.com/scim/v2/Users/<user api key> \
      -H 'Content-Type: application/scim+json' \
      -H 'Authorization: Bearer <api secret key>' \
      -d '{
        "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
        "Operations": [
          {
            "op": "remove",
            "path": "acuCycleLimit"
          }
        ]
      }'
    ```

    L'attribut `acuCycleLimit` (décimal, facultatif) remplace la limite d'ACU qu'un utilisateur peut consommer au cours du cycle de facturation en cours. Il ne s'applique qu'aux Teams en facturation ACU — le définir pour une Team qui n'est pas en facturation ACU est rejeté avec une erreur HTTP 400 (`scimType` `invalidValue`) ; sa suppression est toujours autorisée. La valeur doit être un nombre fini non négatif ; `0` est valide et bloque l'utilisateur pour le cycle de facturation en cours. Les chaînes numériques telles que `"250"` sont également acceptées, car certains fournisseurs d'identité (par exemple Microsoft Entra) envoient les attributs personnalisés sous forme de chaînes. L'attribut est pris en charge sur `POST /Users` (créer un utilisateur avec une limite initiale), `PUT /Users/<user api key>` (omis ou `null` = conservé, valeur = mis à jour) et `PATCH /Users/<user api key>` (soit une valeur sans chemin `{"acuCycleLimit": 100}`, soit les opérations basées sur un chemin présentées ci-dessus). Pour supprimer la dérogation, utilisez une opération `remove` sur `acuCycleLimit` comme indiqué ci-dessus ; un `replace` avec la valeur `null` est rejeté par la validation des requêtes SCIM. `acuCycleLimit` est omis des réponses lorsque l'utilisateur n'a aucune dérogation explicite (la valeur par défaut de la Team/du groupe s'applique).

    L'attribut en lecture seule `effectiveAcuCycleLimit` (décimal) correspond à la limite réellement appliquée à l'utilisateur : la dérogation par utilisateur lorsqu'elle est définie, sinon la plus restrictive entre les limites de groupe de l'utilisateur et la limite de Team. Il est renvoyé lors des lectures d'un utilisateur unique (`GET /Users/<user api key>` et recherches filtrées), mais pas dans les pages de liste `GET /Users` non filtrées. Ne mappez pas `effectiveAcuCycleLimit` dans le profil de push/provisionnement de votre fournisseur d'identité : il n'est pas modifiable.

    Dans Okta ou Microsoft Entra, configurez `acuCycleLimit` en tant que mappage d’attribut SCIM personnalisé dans le profil utilisateur.

    Créer un utilisateur :

    ```
    curl -X POST \
      https://server.codeium.com/scim/v2/Users \
      -H 'Content-Type: application/scim+json' \
      -H 'Authorization: Bearer <api secret key>' \
      -d '{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
        "userName": "<email>",
        "displayName": "<full name>",
        "active": true
    }'
    ```

    Mettre à jour le nom :

    ```
    curl -X PATCH \
      'https://<enterprise portal url>/_route/api_server/scim/v2/Users/<user api key>' \
        -H 'Authorization: Bearer <service key>' \
        -H 'Content-Type: application/scim+json' \
        -d '{
          "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
          "Operations": [
            {
              "op": "Replace",
              "path": "displayName",
              "value": "<new name>"
            }
          ]
       }'
    ```

    <div id="creating-api-secret-key">
      ## Création d'une clé secrète d'API
    </div>

    Accédez à [https://windsurf.com/team/settings](https://windsurf.com/team/settings). Sous "Service Key Configuration", cliquez sur "Add Service Key". Saisissez un nom de clé (par exemple « Azure Provisioning Key ») et cliquez sur "Create Service Key". Copiez la clé fournie et enregistrez‑la ; vous pouvez maintenant utiliser cette clé pour autoriser les API ci‑dessus.
  </Tab>

  <Tab title="Duo">
    <div id="prerequisites">
      ## Prérequis
    </div>

    Ce guide suppose que Duo est configuré et sert d’IdP pour votre organisation, ou qu’un IdP externe est configuré.

    Vous devez disposer d’un accès administrateur à la fois à Duo et à Devin Desktop.

    <div id="configure-duo-for-devin-desktop">
      ## Configurer Duo pour Devin Desktop
    </div>

    1. Accédez à Applications, puis ajoutez un fournisseur de services SAML générique

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/duo-sso-1.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=2337f30b719803b6be1ec02862918196" width="2230" height="920" data-path="desktop/assets/auth/duo-sso-1.png" />
    </Frame>

    2. Accédez à SSO dans Team Settings

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/windsurf-sso-team-settings.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=12ed68859b08f0e618b16d5fd577836f" width="1676" height="1444" data-path="desktop/assets/auth/windsurf-sso-team-settings.png" />
    </Frame>

    3. Lors de la première activation de SAML, vous devrez configurer votre identifiant SSO. **Vous ne pourrez plus le modifier par la suite.**

       Il est recommandé d’utiliser le nom de votre organisation ou de votre équipe, en n’employant que des caractères alphanumériques.

    4. Copiez la valeur `Entity ID` depuis le portail Duo et collez-la dans le champ `IdP Entity ID` du portail Devin Desktop.

    5. Copiez la valeur `Single Sign-On URL` depuis le portail Duo et collez-la dans le champ `SSO URL` du portail Devin Desktop.

    6. Copiez la valeur du certificat depuis le portail Duo et collez-la dans le champ `X509 Certificate` du portail Devin Desktop

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/duo-sso-3.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=7fbbc321d2ceb76480c6cc4a6b78d905" width="1536" height="290" data-path="desktop/assets/auth/duo-sso-3.png" />
    </Frame>

    7. Copiez la valeur `SP Identity ID` depuis le portail Devin Desktop et collez-la dans le champ `Entity ID` du portail Duo.

    8. Copiez la `Callback URL (Assertion Consumer Service URL)` depuis le portail Devin Desktop et collez-la dans le champ `Assertion Consumer Service (ACS) URL` du portail Duo.

    9. Dans le portail Duo, configurez les attributs comme suit :

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/duo-sso-4.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=e5ac0ecad074d144d4d2b0cceaf341eb" width="1676" height="290" data-path="desktop/assets/auth/duo-sso-4.png" />
    </Frame>

    10. Activez la connexion SAML dans le portail Devin Desktop afin de pouvoir la tester.

    **REMARQUE : NE VOUS DÉCONNECTEZ PAS ET NE FERMEZ PAS LA FENÊTRE À CE STADE.**

    Si une erreur se produit ou que la session expire, vérifiez vos paramètres. Sinon, vous devrez désactiver vos paramètres SAML dans le portail Devin Desktop.

    **Si vous vous déconnectez ou fermez la fenêtre sans confirmer la réussite du test, vous risquez d’être bloqué.**

    11. Une fois le test terminé avec succès, vous pouvez vous déconnecter. Vous pouvez désormais utiliser la connexion SSO en accédant à la page de votre équipe/organisation avec l’identifiant SSO que vous avez configuré à l’étape 3.

    [https://www.codeium.com/yourssoid/login](https://www.codeium.com/yourssoid/login)
  </Tab>

  <Tab title="PingID">
    <div id="prerequisites-2">
      ## Prérequis
    </div>

    Ce guide suppose que PingID est configuré et agit comme l’IdP de votre organisation, ou qu’un IdP externe y est configuré.

    Vous aurez besoin d’un accès administrateur aux comptes PingID et Devin Desktop.

    <div id="configure-pingid-for-devin-desktop">
      ## Configurer PingID pour Devin Desktop
    </div>

    1. Accédez à Applications et ajoutez Devin Desktop comme application SAML

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/pingid-1.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=842b8c157a663e3a2bfec30f047b414d" width="2258" height="1068" data-path="desktop/assets/auth/pingid-1.png" />
    </Frame>

    2. Accédez à SSO dans Team Settings

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/windsurf-sso-team-settings.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=12ed68859b08f0e618b16d5fd577836f" width="1676" height="1444" data-path="desktop/assets/auth/windsurf-sso-team-settings.png" />
    </Frame>

    3. Lorsque vous activez SAML pour la première fois, vous devrez configurer votre identifiant SSO. **Vous ne pourrez plus le modifier par la suite.**

    Il est recommandé d’utiliser le nom de votre organisation ou de votre équipe, avec uniquement des caractères alphanumériques.

    4. Dans PingID, choisissez de saisir manuellement la configuration et renseignez les champs avec les valeurs suivantes :

    * ACS URLs - il s’agit de la `Callback URL (Assertion Consumer Service URL)` du portail Devin Desktop.
    * Entity ID - il s’agit du `SP Entity ID` du portail Devin Desktop.

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/pingid-3.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=8891f68b0286963b01cedcd19d63e03c" width="974" height="672" data-path="desktop/assets/auth/pingid-3.png" />
    </Frame>

    5. Copiez l’`Issuer ID` depuis PingID dans le champ `IdP Entity ID` du portail Devin Desktop.

    6. Copiez la valeur `Single Signon Service` depuis PingID dans le champ `SSO URL` du portail Devin Desktop.

    7. Téléchargez le certificat de signature depuis PingID au format X509 PEM (.crt), ouvrez le fichier, puis copiez son contenu dans le champ `X509 Certificate` du portail Devin Desktop.

    **Remarque** : assurez-vous de copier les lignes de début et de fin complètes avec 5 tirets (-), sans aucun autre caractère !

    8. Dans les mappages d’attributs, assurez-vous de faire correspondre :

    * `saml_subject` - Adresse e-mail
    * `firstName` - Prénom
    * `lastName` - Nom de famille

    <Frame>
      <img src="https://mintcdn.com/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/auth/pingid-4.png?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=84d8f8b8804c4838673dfbf3ee8d5eee" width="1398" height="780" data-path="desktop/assets/auth/pingid-4.png" />
    </Frame>

    9. Ajoutez ou modifiez toute autre politique et tout autre accès selon les besoins de votre configuration ou de votre organisation

    10. Activez la connexion SAML dans le portail Devin Desktop afin de pouvoir la tester.

    **REMARQUE : NE VOUS DÉCONNECTEZ PAS ET NE FERMEZ PAS LA FENÊTRE À CE STADE.**

    Si vous obtenez une erreur ou si la session expire, vérifiez vos paramètres ; sinon, vous devrez désactiver vos paramètres SAML dans le portail Devin Desktop.

    **Si vous vous déconnectez ou fermez la fenêtre sans avoir confirmé la réussite du test, vous risquez de vous retrouver bloqué.**

    11. Une fois le test terminé avec succès, vous pouvez vous déconnecter. Vous pouvez désormais utiliser la connexion SSO en accédant à la page de votre équipe ou de votre organisation avec l’identifiant SSO configuré à l’étape 3.

    [https://www.codeium.com/yourssoid/login](https://www.codeium.com/yourssoid/login)
  </Tab>
</Tabs>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.