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

# Configuration de SSO et SCIM

> Configurez l'authentification unique (SSO) et le provisioning SCIM pour votre organisation à l'aide de Google Workspace, Microsoft Azure AD, Okta ou d'autres fournisseurs d'identité SAML.

<Note>Cette fonctionnalité est réservée aux utilisateurs des offres Teams et Enterprise.</Note>

<Note>Cette fonctionnalité ne s'applique pas aux offres Cognition Platform. Pour Cognition Platform, le SSO doit être configuré et géré directement dans vos paramètres Cognition Platform.</Note>

<Tabs>
  <Tab title="SSO Google">
    Windsurf prend désormais en charge la connexion via Single Sign-On (SSO) avec SAML. Si votre organisation utilise Microsoft Entra, Okta, Google Workspaces ou un autre fournisseur d’identité compatible SAML, vous pourrez utiliser le SSO avec Windsurf.

    <Note>Windsurf prend uniquement en charge le SSO initié par le SP ; le SSO initié par l’IdP n’est PAS pris en charge pour le moment.</Note>

    ### Configurer l’application IdP

    Dans la console d’administration Google (admin.google.com), cliquez sur **Apps -> Web and mobile apps** dans le menu de gauche.

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=9d300c86c609da6ee3fb630e91f4de3e" width="530" height="788" data-path="assets/auth/sso-google.png" />
    </Frame>

    Cliquez sur **Add app**, puis sur **Add custom SAML app**.

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=44375b535f269f130aea8c5bd6e736be" width="514" height="534" data-path="assets/auth/sso-google2.png" />
    </Frame>

    Renseignez **App name** avec `Windsurf`, puis cliquez sur **Next**.

    L’écran suivant (Google Identity Provider details) dans la console Google contient des informations à copier dans les paramètres SSO de Windsurf sur [https://windsurf.com/team/settings](https://windsurf.com/team/settings).

    * Copiez **SSO URL** depuis la console Google vers les paramètres de Windsurf sous **SSO URL**
    * Copiez **Entity ID** depuis la console Google vers les paramètres de Windsurf sous **IdP Entity ID**
    * Copiez **Certificate** depuis la console Google vers les paramètres de Windsurf sous **X509 Certificate**
    * Cliquez sur **Continue** dans la console Google

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

    * Copiez **Callback URL** depuis la page des paramètres de Codeium vers la console Google sous **ACS URL**
    * Copiez **SP Entity ID** depuis la page des paramètres de Codeium vers la console Google sous **SP Entity ID**
    * Modifiez le format de **Name ID** en **EMAIL**
    * Cliquez sur **Continue** dans la console Google

    L’écran suivant dans la console Google nécessite une configuration

    * Cliquez sur **Add Mapping**, sélectionnez **First name** et définissez **App attributes** sur **firstName**
    * Cliquez sur **Add Mapping**, sélectionnez **Last name** et définissez **App attributes** sur **lastName**
    * Cliquez sur **Finish**

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

    Sur la page des paramètres de Codeium, cliquez sur **Enable Login with SAML**, puis sur **Save**. Assurez-vous de cliquer sur **Test Login** pour vérifier que la connexion fonctionne comme prévu. Le SSO sera désormais imposé à tous les utilisateurs.
  </Tab>

  <Tab title="Microsoft Entra ID">
    Windsurf Enterprise prend désormais en charge la connexion via Single Sign-On (SSO) avec SAML. Si votre organisation utilise Microsoft Entra ID (anciennement Azure AD), vous pourrez utiliser le SSO avec Windsurf.

    <Note>Windsurf prend uniquement en charge le SSO initié par le SP ; le SSO initié par l’IdP n’est PAS pris en charge pour le moment.</Note>

    ## Partie 1 : Créer une application Enterprise dans Microsoft Entra ID

    <Note>Toutes les étapes de cette section sont effectuées dans le **Microsoft Entra ID admin center**.</Note>

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

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=70c1ef27e1870d1f95176d12cd7c9c47" width="854" height="384" data-path="assets/auth/sso-azure.png" />
    </Frame>

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

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

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

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

    ## Partie 2 : Configurer SAML et les attributs utilisateur dans Microsoft Entra ID

    <Note>Toutes les étapes de cette section sont effectuées dans le **Microsoft Entra ID admin center**.</Note>

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

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

    6. **Gardez cet onglet Entra ID ouvert** et ouvrez un nouvel onglet pour accéder aux **paramètres SSO de Windsurf 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 Windsurf**
       * **Reply URL (Assertion Consumer Service URL)** : Copiez la valeur **Callback URL** depuis la **page des paramètres SSO de Windsurf**
       * Cliquez sur **Save** en haut

    8. Configurez les attributs utilisateur pour un affichage correct des noms. Dans **Microsoft Entra ID**, sous **Attributes & Claims**, cliquez sur **Edit**.

    9. Créez 2 nouvelles revendications en cliquant sur **Add new claim** pour chacune :
       * **Première revendication** : Name = `firstName`, Source attribute = `user.givenname`
       * **Seconde revendication** : Name = `lastName`, Source attribute = `user.surname`

    ## Partie 3 : Configurer les paramètres SSO dans le portail Windsurf

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

    10. Sur la **page des paramètres SSO de Windsurf** :
        * **Pick your SSO ID** : Choisissez un identifiant unique pour le portail de connexion de votre équipe (cela ne pourra pas être modifié ultérieurement)
        * **IdP Entity ID** : Copiez la valeur depuis **Microsoft Entra ID** sous **Set up Windsurf** → **Microsoft Entra Identifier**
          <Note>L’URL IdP Entity ID doit se terminer par un `/` final (par exemple, `https://sts.windows.net/{tenant-id}/`). Si l’URL ne se termine pas par ce slash final, ajoutez‑le manuellement.</Note>
        * **SSO URL** : Copiez la valeur **Login URL** depuis **Microsoft Entra ID**
        * **X509 Certificate** : Téléchargez le **SAML certificate (Base64)** depuis **Microsoft Entra ID**, ouvrez le fichier, puis collez ici le contenu texte

    11. Dans le **portail Windsurf**, cliquez sur **Enable Login with SAML**, puis cliquez sur **Save**.

    12. **Testez la configuration** : Cliquez sur **Test Login** pour vérifier que la configuration SSO fonctionne comme prévu.

    <Note>**Important** : Ne vous déconnectez pas et ne fermez pas la page des paramètres Windsurf tant que vous n'avez pas réussi le test de connexion. Si le test échoue, vous devrez peut-être dépanner votre configuration avant de continuer.</Note>
  </Tab>

  <Tab title="SSO Okta">
    Windsurf Enterprise prend désormais en charge la connexion via Single Sign-On (SSO) avec SAML. Si votre organisation utilise Microsoft Entra, Okta, Google Workspace ou un autre fournisseur d’identité compatible SAML, vous pourrez utiliser le SSO avec Windsurf.

    <Note>Windsurf ne prend en charge que le SSO initié par le SP ; le SSO initié par l’IdP n’est PAS pris en charge pour le moment.</Note>

    ### Configurer l’application IdP

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

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

    Sélectionnez SAML 2.0 comme méthode de connexion

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

    Définissez le nom de l’application sur Windsurf (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/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=0903972c21dd13147a1adfe8791f1679" width="1398" height="602" data-path="assets/auth/sso-okta3.png" />
    </Frame>

    Dans la section de retour d’information, sélectionnez « This is an internal app that we have created », puis cliquez sur **Finish**.

    ### Enregistrer Okta comme fournisseur SAML

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

    * Ouvrez [https://windsurf.com/team/settings](https://windsurf.com/team/settings), puis cliquez sur Configure SAML
    * Copiez le texte après ‘Issuer’ dans la page d’application Okta et collez-le dans IdP Entity ID
    * Copiez le texte après ‘Sign on URL’ dans la page d’application Okta et collez-le dans SSO URL
    * Téléchargez le Signing Certificate et collez-le dans X509 certificate
    * Cochez Enable Login with SAML puis cliquez sur Save
    * Testez la connexion avec le bouton Test Login. Vous devriez voir un message de réussite :

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=574e091c869162bc41dc0aa36cd209fa" width="1046" height="270" data-path="assets/auth/sso-okta4.png" />
    </Frame>

    À ce stade, tout devrait être configuré et vous pouvez maintenant ajouter des utilisateurs à la nouvelle application Okta Windsurf.

    Partagez l’URL personnalisée du portail de connexion de votre organisation avec vos utilisateurs et demandez‑leur de se connecter via ce lien.

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

    Les utilisateurs qui se connectent à Windsurf via SSO seront automatiquement approuvés dans l’équipe.

    ### Mises en garde

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

    Nous ne prenons pas encore en charge OIDC.

    # Dépannage

    ### Échec de la configuration de connexion avec SAML : Firebase : Error (auth/operation-not-allowed)

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

    Cela indique un ID SSO invalide ou une URL SSO incorrecte ; assurez‑vous qu’elle est alphanumérique et qu’il n’y a pas d’espaces superflus ni de caractères invalides. Veuillez reprendre les étapes du guide et vérifier que vous utilisez les bonnes valeurs.

    ### Échec de la configuration de connexion avec SAML : Firebase : SAML Response \<Issuer> mismatch. (auth/invalid-credential)

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=446c8ad9510b7dcc8e744c7b80862c29" width="752" height="117" data-path="assets/auth/sso-okta7.png" />
    </Frame>

    Cela indique que votre IdP Entity ID est invalide ; veuillez vous assurer de le copier correctement depuis le portail Okta, sans caractères supplémentaires ni espaces avant ou après la chaîne.

    ### Échec de la vérification de la signature dans samlresponse

    Cela indique une valeur incorrecte de votre X509 certificate ; veuillez vous assurer de copier la bonne clé et qu’elle est formatée comme suit :

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

  <Tab title="Azure SCIM (norme de gestion des identités et des groupes)">
    Windsurf prend en charge la synchronisation SCIM (norme de gestion des identités et des groupes) pour les utilisateurs et les groupes avec Microsoft Entra ID / Azure AD. Il n'est pas nécessaire de configurer le SSO pour utiliser la synchronisation SCIM, mais cela est fortement recommandé.

    Vous aurez besoin de :

    * Accès administrateur à Microsoft Entra ID / Azure AD
    * Accès administrateur à Windsurf
    * Une application Windsurf existante sur Entra ID (généralement dérivée de votre application SSO existante)

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

      La clé de service utilisée pour le provisionnement SCIM (norme de gestion des identités et des groupes) 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 des utilisateurs et des groupes
      * **Team User Delete** - Requise pour désactiver/supprimer des utilisateurs et des groupes

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

    ## Étape 1 : Créer un rôle avec les autorisations SCIM

    Avant de configurer le provisionnement SCIM (norme de gestion des identités et des groupes), vous devez créer un rôle avec les autorisations requises.

    1. Accédez à [Windsurf Team Settings](https://windsurf.com/team/settings)
    2. Dans "Other Settings", cliquez sur **Configure** à côté de **Role Management**
    3. Cliquez sur **Add Role** et nommez-le « SCIM Provisioning »
    4. Ajoutez les permissions suivantes :
       * Team User Read
       * Team User Update
       * Team User Delete
    5. Cliquez sur **Save**

    ## Étape 2 : Accéder à l'application Windsurf existante

    Accédez à Microsoft Entra ID sur Azure, cliquez sur Applications d'entreprise dans la barre latérale gauche, puis cliquez sur l'application Windsurf existante dans la liste.

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

    ## Étape 3 : Configuration du provisionnement SCIM (norme de gestion des identités et des groupes)

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

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

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

    Mode de provisionnement : Automatique

    Identifiants administrateur > URL du tenant : [https://server.codeium.com/scim/v2](https://server.codeium.com/scim/v2)

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

    Laissez la page de provisionnement Azure ouverte, rendez-vous maintenant sur le portail web Windsurf, et cliquez sur l'icône de profil dans la barre de navigation en haut de la page. Sous Paramètres d'équipe, sélectionnez Clé de service et cliquez sur Ajouter une clé de service. Saisissez n'importe quel nom de clé (tel que 'Provisionnement SCIM Azure'), **sélectionnez le rôle "Provisionnement SCIM" que vous avez créé précédemment**, et cliquez sur Créer une clé de service. Copiez la clé générée, retournez sur la page Azure, et collez-la dans Jeton secret.

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

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

    Sur la page Provisioning, cliquez sur Test Connection et cela devrait vérifier la connexion SCIM (norme de gestion des identités et des groupes).

    Maintenant, au-dessus du formulaire de provisioning, cliquez sur Save.

    ## Étape 4 : Configurer le provisionnement SCIM (norme de gestion des identités et des groupes)

    Après avoir cliqué sur Enregistrer, une nouvelle option Mappages devrait être apparue dans la page Provisioning. Développez Mappages, puis cliquez sur Provision Microsoft Entra ID Users

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=276791b068bd34c2bcbe5321e95abfd6" width="666" height="438" data-path="assets/auth/scim-azure4.png" />
    </Frame>

    Sous Mappages d'attributs, supprimez tous les champs sous displayName, en ne conservant que les champs userName, active et displayName.

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

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

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

    Puis cliquez sur OK.

    Vos attributs utilisateur doivent ressembler à

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=2beab12c979d3272d522293080634811" width="2826" height="490" data-path="assets/auth/scim-azure6.png" />
    </Frame>

    Dans la page Mappage des attributs, cliquez sur Enregistrer en haut, puis revenez à la page Approvisionnement.

    Maintenant, cliquez sur la même page, sous Mappings cliquez sur Provision Microsoft Entra ID Groups. Cliquez uniquement sur supprimer pour externalId, puis cliquez sur Enregistrer en haut. Revenez à la page Provisioning.

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=11e89ce7d057c455ea00e0f469351b61" width="1258" height="203" data-path="assets/auth/scim-azure7.png" />
    </Frame>

    Sur la page Provisioning en bas, il devrait également y avoir un bouton Provisioning Status. Réglez-le sur On pour activer la synchronisation SCIM (norme de gestion des identités et des groupes). Désormais, toutes les 40 minutes, vos utilisateurs et groupes pour l'application Entra ID seront synchronisés avec Windsurf.

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

    Cliquez sur Enregistrer pour terminer, vous avez maintenant activé la synchronisation des utilisateurs et des groupes pour SCIM. Seuls les utilisateurs et groupes assignés à l'application seront synchronisés avec Windsurf. Notez que la suppression d'utilisateurs ne fait que désactiver leur accès à Windsurf (et les empêche d'occuper une place) plutôt que de supprimer les utilisateurs en raison de la conception SCIM d'Azure.
  </Tab>

  <Tab title="Okta SCIM (norme de gestion des identités et des groupes)">
    Windsurf prend en charge la synchronisation SCIM pour les utilisateurs et les groupes avec Okta. 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 à Okta
    * Accès administrateur à Windsurf
    * Une application Windsurf existante sur Okta (généralement issue de votre application SSO existante)

    ## Étape 1 : Accéder à l’application Windsurf existante

    Dans Okta, cliquez sur Applications, puis Applications dans la barre latérale gauche, puis cliquez sur l’application Windsurf existante dans la liste des applications.

    ## Étape 2 : Activer le provisioning SCIM

    Sous l’onglet Général, Paramètres de l’application, cliquez sur Modifier en haut à droite. Cochez ensuite la case « Enable SCIM Provisioning », puis cliquez sur Enregistrer. Un nouvel onglet Provisioning devrait apparaître en haut.

    Allez maintenant dans Provisioning, cliquez sur Modifier et renseignez les champs suivants :

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

    Unique identifier field for users: email

    Supported provisioning actions: Push New Users, Push Profile Updates, Push Groups

    Authentication Mode: 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 à la configuration de la clé de service
    * Cliquez sur Configure, puis Add Service Key, et donnez un nom à votre clé d’API
    * Copiez la clé d’API, retournez dans Okta et collez-la dans HTTP Header - Authorization

    Cliquez sur Enregistrer après avoir rempli Provisioning Integration.

    ## Étape 3 : Configurer le provisioning

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

    Après cette étape, tous les utilisateurs affectés au groupe seront synchronisés avec Windsurf.

    ## Étape 4 : Configurer le provisioning des groupes (facultatif)

    Pour synchroniser des groupes avec Windsurf, vous devez spécifier quels groupes pousser. Dans l’application, cliquez sur l’onglet Push Groups en haut. Cliquez maintenant 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 Enregistrer. Le groupe sera créé et les membres du groupe seront synchronisés avec Windsurf. Les groupes peuvent ensuite être utilisés pour filtrer les données Analytics sur la page Analytics.
  </Tab>

  <Tab title="API SCIM (norme de gestion des identités et des groupes)">
    Ce guide explique comment créer et gérer des groupes dans Windsurf avec l'API SCIM.

    Il existe des raisons pour lesquelles on peut vouloir provisionner les groupes manuellement plutôt qu'avec son fournisseur d'identité (Azure/Okta). Les entreprises peuvent souhaiter que les groupes soient provisionnés à partir d'une source interne différente (site web RH, outil de gestion de code source, etc.) à laquelle Windsurf n'a pas accès, ou les entreprises peuvent souhaiter un contrôle plus fin des groupes que ce que leur fournisseur d'identité propose. Les groupes peuvent donc être créés via une API par requête HTTP. Les exemples suivants illustrent la requête HTTP via CURL.

    Il y a 5 API principales ici : Créer un groupe, Ajouter des membres au groupe, Remplacer les membres du groupe, Supprimer un groupe et Lister les utilisateurs dans un groupe.

    ### Créer un groupe

    ```
    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 <clé secrète API>" -H "Content-Type: application/scim+json"
    ```

    ### Ajouter des membres au groupe

    ```
    curl -X PATCH https://server.codeium.com/scim/v2/Groups/<nom du groupe> -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 <clé secrète API>" -H "Content-Type: application/scim+json"
    ```

    ### Remplacer les membres du groupe

    ```
    curl -X PATCH https://server.codeium.com/scim/v2/Groups/<nom du groupe> -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 <clé secrète API>" -H "Content-Type: application/scim+json"
    ```

    ### Supprimer le groupe

    ```
    curl -X DELETE https://server.codeium.com/scim/v2/Groups/<nom du groupe> -H "Authorization: Bearer <clé secrète API>" -H "Content-Type: application/scim+json"
    ```

    ### Lister les groupes

    ```
    curl -X GET -H "Authorization: Bearer <clé secrète API>" "https://server.codeium.com/scim/v2/Groups"
    ```

    ### Lister les utilisateurs d'un groupe

    ```
    curl -X GET -H "Authorization: Bearer <clé secrète API>" "https://server.codeium.com/scim/v2/Groups/<group_id>"
    ```

    Vous devrez d'abord créer le groupe, puis le remplacer pour créer un groupe contenant des membres. Vous devrez également encoder les noms de groupe dans l'URL si votre nom de groupe contient un caractère spécial comme un espace, ainsi un nom de groupe tel que « Engineering Group » devra être « Engineering%20Group » dans l'URL.

    Notez que les utilisateurs doivent être créés dans Windsurf (via SCIM (norme de gestion des identités et des groupes) ou par création manuelle du compte) avant de pouvoir être ajoutés à un groupe.

    ## APIs utilisateur

    Il existe également des API pour les utilisateurs. Voici quelques-unes des API SCIM (norme de gestion des identités et des groupes) courantes que Windsurf prend en charge.

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

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

    Créer un utilisateur :

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

    Modifier le nom :

    ```
    curl -X PATCH \
      'https://<enterprise portal url>/_route/api_server/scim/v2/Users/<user api key>' \
        -H 'Authorization: Bearer <clé de service>' \
        -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>"
            }
          ]
       }'
    ```

    ## Création d'une clé secrète d'API

    Rendez-vous sur [https://windsurf.com/team/settings](https://windsurf.com/team/settings). Dans la section Configuration de clé de service, cliquez sur Ajouter une clé de service. Saisissez un nom de clé quelconque (par exemple « Clé de provisionnement Azure ») et cliquez sur Créer une clé de service. Copiez la clé générée et enregistrez-la, vous pourrez désormais utiliser cette clé pour authentifier les API mentionnées ci-dessus.
  </Tab>

  <Tab title="Duo">
    ## Prérequis

    Ce guide suppose que vous avez configuré Duo comme fournisseur d’identité (IdP) de votre organisation, ou que vous avez configuré un IdP externe.

    Vous aurez besoin d’un accès administrateur aux comptes Duo et Windsurf.

    ## Configurer Duo pour Windsurf

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

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

    2. Accédez à SSO dans Team Settings.

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

    3. Lors de l’activation de SAML pour la première fois, vous devrez définir votre ID de SSO. **Vous ne pourrez pas le modifier par la suite.**

       Il est recommandé d’utiliser le nom de votre organisation ou de votre équipe, uniquement avec 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 Windsurf.

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

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

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

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

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

    9. Dans le portail Duo, configurez les déclarations d’attributs comme suit :

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

    10. Activez la connexion SAML dans le portail Windsurf pour pouvoir la tester.

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

    En cas d’erreur ou de délai d’expiration, dépannez vos paramètres, sinon vous devrez désactiver vos paramètres SAML dans le portail Windsurf.

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

    11. Une fois votre test conclu 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’ID de SSO que vous avez configuré à l’étape 3.

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

  <Tab title="PingID">
    ## Prérequis

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

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

    ## Configurer PingID pour Windsurf

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

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

    2. Accédez à SSO dans Team Settings.

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

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

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

    4. Dans PingID, choisissez la saisie manuelle de la configuration et remplissez les champs avec les valeurs suivantes :

    * ACS URLs — correspond à la `Callback URL (Assertion Consumer Service URL)` depuis le portail Windsurf.
    * Entity ID — correspond à la valeur `SP Entity ID` depuis le portail Windsurf.

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

    5. Copiez l’`Issuer ID` depuis PingID dans la valeur `IdP Entity ID` du portail Windsurf.

    6. Copiez la valeur `Single Signon Service` depuis PingID dans la valeur `SSO URL` du portail Windsurf.

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

    **Remarque** : assurez-vous que les lignes de début et de fin sont complètes avec 5 tirets (-) et qu’aucun autre caractère n’a été copié.

    8. Dans les correspondances d’attributs (attribute mappings), veillez à mapper :

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

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

    9. Ajoutez/modifiez toute autre règle et tout autre accès selon les besoins de votre configuration/organisation.

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

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

    En cas d’erreur ou de délai d’expiration, corrigez vos paramètres ; sinon, vous devrez désactiver vos paramètres SAML dans le portail Windsurf.

    **Si vous vous déconnectez ou fermez la fenêtre sans confirmer un test réussi, vous risquez d’être verrouillé hors de votre compte.**

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

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