> ## 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 provisionnement SCIM pour votre organisation à l'aide de Google Workspace, Microsoft Azure AD, Okta ou d'autres fournisseurs d'identité SAML.

Cette fonctionnalité est réservée aux utilisateurs des offres Teams et Enterprise.

<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 Workspace 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 nécessite de copier des informations 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 quelques configurations

    * 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**. Veillez à cliquer sur **Test Login** pour vérifier que la connexion fonctionne comme prévu. La connexion SSO sera désormais imposée à 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 **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/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 **centre d’administration Microsoft Entra ID**.</Note>

    4. Dans votre nouvelle application Windsurf, 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 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 Windsurf**
       * **Reply URL (Assertion Consumer Service URL)** : copiez la valeur **Callback URL** depuis la **page des paramètres SSO Windsurf**
       * Cliquez sur **Save** en haut

    8. Configurez les attributs utilisateur pour un affichage correct du nom. 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`
       * **Deuxième 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 Windsurf** :
        * **Pick your SSO ID** : choisissez un identifiant unique pour le portail de connexion de votre équipe (ce choix ne pourra pas être modifié par la suite)
        * **IdP Entity ID** : copiez la valeur depuis **Microsoft Entra ID** sous **Set up Windsurf** → **Microsoft Entra Identifier**
        * **SSO URL** : copiez la **Login URL** depuis **Microsoft Entra ID**
        * **X509 Certificate** : téléchargez le **SAML certificate (Base64)** depuis **Microsoft Entra ID**, ouvrez le fichier et collez ici le contenu texte

    11. Dans le **portail Windsurf**, cliquez sur **Enable Login with SAML**, puis 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 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

    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 feedback, 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 devrez maintenant prendre 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’ sur la page de l’application Okta et collez-le sous Idp Entity ID
    * Copiez le texte après ‘Sign on URL’ sur la page de l’application Okta et collez-le sous SSO URL
    * Téléchargez le Signing Certificate et collez-le sous 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.

    Vous devriez 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/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 actuellement pas en charge les flux de connexion initiés par l’IdP.

    Nous ne prenons pas encore en charge OIDC.

    # Dépannage

    ### Login with SAML config failed: 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’elle ne contient pas d’espaces supplémentaires ni de caractères non valides. Veuillez revoir les étapes du guide et vous assurer d’utiliser les valeurs correctes.

    ### Login with SAML config failed: 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.

    ### Failed to verify the signature in samlresponse

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

    ```
    -----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 c’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 issue de votre application SSO existante)

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

    Allez dans Microsoft Entra ID sur Azure, cliquez sur Enterprise applications 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 2 : Configurer le provisioning SCIM

    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/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>

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

    Provisioning Mode : Automatic

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

    Laissez la page de provisioning Azure ouverte, puis rendez-vous sur le portail web Windsurf 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 n’importe quel nom de clé (par exemple « Azure Provisioning Key ») et cliquez sur Create Service Key. Copiez la clé générée, retournez sur la page Azure et collez-la dans Secret Token.

    <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 ; cela devrait vérifier la connexion SCIM.

    Ensuite, au-dessus du formulaire Provisioning, cliquez sur Save.

    ## Étape 3 : Configurer le provisioning SCIM

    Après avoir cliqué sur Save, une nouvelle option Mappings devrait apparaître sur la page Provisioning. Développez Mappings, 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 Attribute Mappings, supprimez tous les champs sous displayName en ne laissant 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 pour

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

    Puis cliquez sur OK.

    Vos attributs utilisateur devraient ressembler à ceci :

    <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>

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

    Sur cette même page, sous Mappings, cliquez sur Provision Microsoft Entra ID Groups. Supprimez uniquement externalId (delete), puis cliquez sur Save 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, tout en bas, vous devriez également voir un interrupteur 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 de 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 Save pour terminer : vous avez maintenant activé la synchronisation des utilisateurs et des groupes via SCIM. Seuls les utilisateurs et groupes affectés à l’application seront synchronisés avec Windsurf. Notez que la suppression d’utilisateurs se contente de leur désactiver l’accès à Windsurf (et évite qu’ils occupent une place), au lieu de les supprimer, 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

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

    ## Étape 2 : Activer le provisionnement SCIM

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

    Allez maintenant dans Provisioning, cliquez sur Edit 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 allez dans Other Settings et trouvez Service Key Configuration
    * Cliquez sur Add Service Key et donnez un nom à votre clé
    * Copiez la clé API, retournez sur Okta et collez-la dans HTTP Header - Authorization

    Cliquez sur Save après avoir rempli Provisioning Integration.

    ## Étape 3 : Configurer le provisionnement

    Sous l’onglet Provisioning, à gauche, deux nouveaux onglets devraient apparaître. Cliquez sur To App, puis 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 affectés au groupe seront désormais synchronisés avec Windsurf.

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

    Pour synchroniser des groupes vers 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 Save. 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 de groupe 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": "<nom du groupe>",
    "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). Sous Configuration de clé de service, cliquez sur Configurer, puis Ajouter une clé de service. Saisissez n'importe quel nom de clé (tel que « Clé de provisionnement Azure ») et cliquez sur Créer une clé de service. Copiez la clé générée et enregistrez-la, vous pouvez désormais utiliser cette clé pour autoriser les API 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 identifiant SSO. **Vous ne pourrez plus le modifier par la suite.**

       Il est conseillé d’utiliser le nom de votre organisation ou é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 d’expiration, dépannez votre configuration, 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 bloqué.**

    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’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">
    ## Prérequis

    Ce guide suppose que PingID est configuré et sert d’IDP de 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 l’activation de SAML pour la première fois, vous devrez définir votre ID 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. Dans PingID, choisissez la saisie manuelle de la configuration et renseignez les champs avec les valeurs suivantes :

    * ACS URLs : correspond à la `Callback URL (Assertion Consumer Service URL)` depuis le portail Windsurf.
    * Entity ID : correspond au `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 la valeur `X509 Certificate` du portail Windsurf.

    **Remarque : assurez-vous d’avoir les lignes de début et de fin complètes avec 5 tirets (-) et qu’aucun autre caractère ne soit copié !**

    8. Dans les mappages d’attributs, assurez-vous d’associer :

    * `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épassement de délai, 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 réussi, vous risquez d’être bloqué.**

    11. Une fois votre 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>
