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

# Configurando SSO & SCIM

> Configure Single Sign-On (SSO) e provisionamento via SCIM para sua organização usando Google Workspace, Microsoft Azure AD, Okta ou outros provedores de identidade SAML.

Este recurso está disponível somente para usuários dos planos Teams e Enterprise.

<Tabs>
  <Tab title="SSO (Single Sign-On) do Google">
    Windsurf agora oferece suporte a autenticação com SSO (Single Sign-On) via SAML. Se a sua organização usa Microsoft Entra, Okta, Google Workspace ou outro provedor de identidade que ofereça suporte a SAML, você poderá usar SSO com o Windsurf.

    <Note>Windsurf oferece suporte apenas a SSO iniciado pelo SP; SSO iniciado pelo IdP NÃO é suportado no momento.</Note>

    ### Configurar aplicativo do IdP

    No Console do administrador do Google (admin.google.com), clique em **Apps -> Web and mobile apps** no menu à esquerda.

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

    Clique em **Add app** e, em seguida, em **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>

    Preencha **App name** com `Windsurf` e clique em **Next**.

    A próxima tela (Google Identity Provider details) no console do Google contém dados que você precisará copiar para as configurações de SSO do Windsurf em [https://windsurf.com/team/settings](https://windsurf.com/team/settings).

    * Copie a **SSO URL** do console do Google para as configurações do Windsurf em **SSO URL**
    * Copie o **Entity ID** do console do Google para as configurações do Windsurf em **IdP Entity ID**
    * Copie o **Certificate** do console do Google para as configurações do Windsurf em **X509 Certificate**
    * Clique em **Continue** no console do Google

    A próxima tela no console do Google exige que você copie dados da página de configurações do Codeium

    * Copie a **Callback URL** da página de configurações do Codeium para o console do Google em **ACS URL**
    * Copie o **SP Entity ID** da página de configurações do Codeium para o console do Google em **SP Entity ID**
    * Altere o formato de **Name ID** para **EMAIL**
    * Clique em **Continue** no console do Google

    A próxima tela no console do Google requer algumas configurações

    * Clique em **Add Mapping**, selecione **First name** e defina **App attributes** como **firstName**
    * Clique em **Add Mapping**, selecione **Last name** e defina **App attributes** como **lastName**
    * Clique em **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>

    Na página de configurações do Codeium, clique em **Enable Login with SAML** e, em seguida, clique em **Save**. Não deixe de clicar em **Test Login** para garantir que o login funcione conforme o esperado. Agora todos os usuários terão o login por SSO obrigatório.
  </Tab>

  <Tab title="Microsoft Entra ID">
    Windsurf Enterprise agora oferece suporte a login com SSO (Single Sign-On) via SAML. Se sua organização usa Microsoft Entra ID (antigo Azure AD), você poderá usar SSO com o Windsurf.

    <Note>Windsurf oferece suporte apenas a SSO iniciado pelo SP; SSO iniciado pelo IdP NÃO é suportado no momento.</Note>

    ## Parte 1: Criar aplicativo Enterprise no Microsoft Entra ID

    <Note>Todas as etapas desta seção são realizadas no **Microsoft Entra ID admin center**.</Note>

    1. No Microsoft Entra ID, clique em **Add** e depois em **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. Clique em **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. Nomeie o aplicativo **Windsurf**, selecione *Integrate any other application you don't find in the gallery* e clique em **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>

    ## Parte 2: Configurar SAML e atributos de usuário no Microsoft Entra ID

    <Note>Todas as etapas desta seção são realizadas no **Microsoft Entra ID admin center**.</Note>

    4. No novo aplicativo Windsurf, clique em **Set up single sign on** e depois em **SAML**.

    5. Clique em **Edit** em **Basic SAML Configuration**.

    6. **Mantenha esta aba do Entra ID aberta** e abra uma nova aba para acessar as **Windsurf Teams SSO settings** em [https://windsurf.com/team/settings](https://windsurf.com/team/settings).

    7. No formulário de configuração SAML do **Microsoft Entra ID**:
       * **Identifier (Entity ID)**: Copie o valor de **SP Entity ID** da **Windsurf SSO settings page**
       * **Reply URL (Assertion Consumer Service URL)**: Copie o valor de **Callback URL** da **Windsurf SSO settings page**
       * Clique em **Save** no topo

    8. Configure os atributos de usuário para a exibição correta do nome. No **Microsoft Entra ID**, em **Attributes & Claims**, clique em **Edit**.

    9. Crie 2 novas declarações (claims) clicando em **Add new claim** para cada uma:
       * **Primeira claim**: Name = `firstName`, Source attribute = `user.givenname`
       * **Segunda claim**: Name = `lastName`, Source attribute = `user.surname`

    ## Parte 3: Configurar o SSO no portal do Windsurf

    <Note>Conclua a configuração no **Windsurf portal** ([https://windsurf.com/team/settings](https://windsurf.com/team/settings)).</Note>

    10. Na **Windsurf SSO settings page**:
        * **Pick your SSO ID**: Escolha um identificador exclusivo para o portal de login da sua equipe (isso não poderá ser alterado depois)
        * **IdP Entity ID**: Copie o valor do **Microsoft Entra ID** em **Set up Windsurf** → **Microsoft Entra Identifier**
        * **SSO URL**: Copie o valor de **Login URL** do **Microsoft Entra ID**
        * **X509 Certificate**: Baixe o **SAML certificate (Base64)** do **Microsoft Entra ID**, abra o arquivo e cole o conteúdo de texto aqui

    11. No **Windsurf portal**, clique em **Enable Login with SAML** e depois em **Save**.

    12. **Teste a configuração**: Clique em **Test Login** para verificar se a configuração de SSO está funcionando conforme o esperado.

    <Note>**Importante**: Não faça logout nem feche a página de configurações do Windsurf até testar o login com sucesso. Se o teste falhar, pode ser necessário solucionar problemas na configuração antes de prosseguir.</Note>
  </Tab>

  <Tab title="SSO (Single Sign-On) da Okta">
    Windsurf Enterprise agora oferece suporte a autenticação com Single Sign-On (SSO) via SAML. Se sua organização usa Microsoft Entra, Okta, Google Workspaces ou outro provedor de identidade que ofereça suporte a SAML, você poderá usar SSO com o Windsurf.

    <Note>O Windsurf oferece suporte apenas a SSO iniciado pelo SP; SSO iniciado pelo IdP NÃO é compatível no momento.</Note>

    ### Configurar o aplicativo do IdP

    Clique em Applications na barra lateral esquerda e depois em 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>

    Selecione SAML 2.0 como método de autenticação

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

    Defina o nome do aplicativo como Windsurf (ou qualquer outro nome) e clique em Next

    Configure as definições SAML como:

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

    Configure as declarações de atributo conforme a seguir e, em seguida, clique em **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>

    Na seção de feedback, selecione “This is an internal app that we have created” e clique em **Finish**.

    ### Registrar o Okta como provedor SAML

    Você deve ser redirecionado para a aba Sign on no seu aplicativo SAML personalizado. Agora, use as informações desta página para preencher as configurações de SSO do Windsurf.

    * Abra [https://windsurf.com/team/settings](https://windsurf.com/team/settings) e clique em Configure SAML
    * Copie o texto após “Issuer” na página do aplicativo da Okta e cole em IdP Entity ID
    * Copie o texto após “Sign on URL” na página do aplicativo da Okta e cole em SSO URL
    * Baixe o Signing Certificate e cole em X509 certificate
    * Marque Enable Login with SAML e clique em Save
    * Teste o login com o botão Test Login. Você deverá ver uma mensagem de sucesso:

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

    Neste ponto, tudo deve estar configurado e você já pode adicionar usuários ao novo aplicativo Windsurf no Okta.

    Você deve compartilhar a URL personalizada do Login Portal da sua organização com os usuários e pedir que acessem por esse link.

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

    Usuários que acessarem o Windsurf via SSO serão aprovados automaticamente na equipe.

    ### Observações

    Observe que o Windsurf atualmente não oferece suporte a fluxos de login iniciados pelo IdP.

    Também ainda não oferecemos suporte a OIDC.

    # Solução de problemas

    ### Login com configuração SAML falhou: 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>

    Isso indica um ID de SSO inválido ou uma SSO URL incorreta. Verifique se ela é alfanumérica e não contém espaços extras ou caracteres inválidos. Revise as etapas do guia e certifique-se de usar os valores corretos.

    ### Login com configuração SAML falhou: 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>

    Isso indica que seu IdP Entity ID é inválido. Certifique-se de copiá-lo corretamente do portal da Okta, sem caracteres extras ou espaços antes ou depois da string.

    ### Falha ao verificar a assinatura em samlresponse

    Isso indica um valor incorreto do seu X509 certificate. Certifique-se de copiar a chave correta e de que ela esteja formatada como:

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

  <Tab title="Azure SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos)">
    Windsurf oferece sincronização SCIM para usuários e grupos com Microsoft Entra ID / Azure AD. Não é necessário configurar SSO (Single Sign-On) para usar a sincronização SCIM, mas isso é altamente recomendado.

    Você vai precisar de:

    * Acesso de administrador ao Microsoft Entra ID / Azure AD
    * Acesso de administrador ao Windsurf
    * Um aplicativo Windsurf já existente no Entra ID (normalmente o do seu aplicativo de SSO existente)

    ## Etapa 1: Acesse o aplicativo Windsurf existente

    Acesse o Microsoft Entra ID no Azure, clique em Enterprise applications na barra lateral esquerda e, em seguida, clique no aplicativo Windsurf existente na lista.

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

    ## Etapa 2: Configure o provisionamento SCIM

    Clique em Get started em Provision User Accounts no meio (etapa 3) e depois clique novamente em 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>

    Na página de configuração de Provisioning, selecione as seguintes opções.

    Provisioning Mode: Automatic

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

    Deixe a página de provisionamento do Azure aberta; agora vá para o portal web do Windsurf e clique no ícone de perfil na NavBar na parte superior da página. Em Team Settings, selecione Service Key e clique em Add Service Key. Insira qualquer nome para a chave (por exemplo, “Azure Provisioning Key”) e clique em Create Service Key. Copie a chave gerada, volte para a página do Azure e cole em 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>

    (O que você deverá ver após criar a chave no Windsurf)

    Na página de Provisioning, clique em Test Connection para verificar a conexão SCIM.

    Agora, acima do formulário de Provisioning, clique em Save.

    ## Etapa 3: Configure o provisionamento SCIM

    Após clicar em Save, uma nova opção Mappings deverá aparecer na página de Provisioning. Expanda Mappings e clique em 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>

    Em attribute Mappings, exclua todos os campos em displayName, deixando apenas os campos userName, active e 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>

    Para active, clique agora em Edit. Em Expression, modifique o campo para

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

    Em seguida, clique em Ok.

    Seus atributos de usuário devem ficar assim:

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

    Na página Attribute Mapping, clique em Save no topo e volte para a página Provisioning.

    Agora, na mesma página, em Mappings, clique em Provision Microsoft Entra ID Groups. Em seguida, exclua apenas externalId (clique em delete) e clique em Save no topo. Volte para a página 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>

    Na página Provisioning, na parte inferior, também deve haver um toggle de Provisioning Status. Defina como On para habilitar a sincronização via SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos). Agora, a cada 40 minutos, seus usuários e grupos do aplicativo Entra ID serão sincronizados com o 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>

    Clique em Save para finalizar: você habilitou a sincronização de usuários e grupos via SCIM. Somente usuários e grupos atribuídos ao aplicativo serão sincronizados com o Windsurf. Observe que remover usuários apenas desabilita o acesso deles ao Windsurf (e impede que ocupem uma licença), em vez de excluir usuários, devido ao design do SCIM do Azure.
  </Tab>

  <Tab title="Okta SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos)">
    Windsurf oferece sincronização SCIM para usuários e grupos com Okta. Não é necessário configurar SSO para usar a sincronização SCIM, mas isso é altamente recomendado.

    Você precisará de:

    * Acesso de administrador ao Okta
    * Acesso de administrador ao Windsurf
    * Um aplicativo Windsurf já existente no Okta (normalmente do seu aplicativo de SSO existente)

    ## Etapa 1: Navegue até o aplicativo Windsurf existente

    Acesse o Okta, clique em Applications, Applications na barra lateral esquerda e, em seguida, clique no aplicativo Windsurf existente na lista de aplicativos.

    ## Etapa 2: Habilite o Provisionamento SCIM

    Na aba General, App Settings, clique em Edit no canto superior direito. Marque a caixa de seleção ‘Enable SCIM Provisioning’ e, em seguida, clique em Save. Uma nova aba de Provisioning deve ter aparecido no topo.

    Agora vá para Provisioning, clique em Edit e preencha os seguintes campos:

    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

    Para HTTP Header - Authorization, você pode gerar o token em

    * [https://windsurf.com/team/settings](https://windsurf.com/team/settings) e vá para Other Settings e encontre Service Key Configuration
    * Clique em Add Service Key e dê um nome à sua chave
    * Copie a API key, volte ao Okta e cole em HTTP Header - Authorization

    Clique em Save após preencher Provisioning Integration.

    ## Etapa 3: Configurar o Provisionamento

    Na aba Provisioning, à esquerda devem aparecer duas novas abas. Clique em To App e em Edit Provisioning to App. Marque as caixas de seleção para Create Users, Update User Attributes e Deactivate Users e clique em Save.

    Após esta etapa, todos os usuários atribuídos ao grupo serão sincronizados com o Windsurf.

    ## Etapa 4: Configurar o Provisionamento de Grupos (Opcional)

    Para sincronizar grupos com o Windsurf, você precisará especificar quais grupos enviar. No aplicativo, clique na aba Push Groups no topo. Agora clique em + Push Groups -> Find Groups by name. Filtre pelo grupo que você deseja adicionar, certifique-se de que Push group memberships immediately esteja marcado e clique em Save. O grupo será criado e os membros do grupo serão sincronizados com o Windsurf. Os grupos podem então ser usados para filtrar analytics de grupo na página de Analytics.
  </Tab>

  <Tab title="API do SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos)">
    Este guia mostra como criar e manter grupos no Windsurf com a API SCIM.

    Existem razões pelas quais pode ser necessário provisionar grupos manualmente em vez de usar o Provedor de Identidade (Azure/Okta). As empresas podem querer que os grupos sejam provisionados a partir de uma fonte interna diferente (site de RH, Ferramenta de Gerenciamento de Código-fonte etc.) à qual o Windsurf não tem acesso, ou podem desejar um controle mais granular sobre os grupos do que o oferecido pelo Provedor de Identidade. Os grupos podem, portanto, ser criados através de uma API via requisição HTTP. A seguir são fornecidos exemplos da requisição HTTP via CURL.

    Existem 5 APIs principais aqui: Criar Grupo, Adicionar membros ao grupo, Substituir membros do grupo, Excluir Grupo e Listar Usuários de um Grupo.

    ### Criar Grupo

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

    ### Adicionar Membros do Grupo

    ```
    curl -X PATCH https://server.codeium.com/scim/v2/Groups/<nome do grupo> -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 <chave secreta da api>" -H "Content-Type: application/scim+json"
    ```

    ### Substituir Membros do Grupo

    ```
    curl -X PATCH https://server.codeium.com/scim/v2/Groups/<nome do grupo> -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 <chave secreta da api>" -H "Content-Type: application/scim+json"
    ```

    ### Excluir Grupo

    ```
    curl -X DELETE https://server.codeium.com/scim/v2/Groups/<nome do grupo> -H "Authorization: Bearer <chave secreta da API>" -H "Content-Type: application/scim+json"
    ```

    ### Listar Grupo

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

    ### Listar Usuários de um Grupo

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

    Você precisará primeiro criar o grupo e depois substituí-lo para criar um grupo com membros. Você também precisará codificar os nomes dos grupos na URL se o nome do grupo contiver caracteres especiais como espaços, então um nome de grupo como 'Engineering Group' deverá ser 'Engineering%20Group' na URL.

    Observe que os usuários precisam ser criados no Windsurf (por meio do SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos) ou criando a conta manualmente) antes que possam ser adicionados a um grupo.

    ## APIs do Usuário

    Também há APIs para usuários. A seguir estão algumas das APIs SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos) comuns que o Windsurf oferece suporte.

    Desabilitar um usuário (Para habilitar, substitua false por true):

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

    Criar um usuário:

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

    Atualizar nome:

    ```
    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>"
            }
          ]
       }'
    ```

    ## Criando Chave Secreta da API

    Acesse [https://windsurf.com/team/settings](https://windsurf.com/team/settings). Em Service Key Configuration, clique em Configure e depois em Add Service Key. Insira qualquer nome para a chave (como 'Azure Provisioning Key') e clique em Create Service Key. Copie a chave gerada e salve-a. Agora você pode usar a chave para autorizar as APIs mencionadas acima.
  </Tab>

  <Tab title="Duo">
    ## Pré-requisitos

    Este guia pressupõe que você tenha o Duo configurado e atuando como seu IdP organizacional, ou que tenha um IdP externo configurado.

    Você precisará de acesso de administrador às contas do Duo e do Windsurf.

    ## Configurar o Duo para o Windsurf

    1. Acesse Applications e adicione um provedor de serviço Generic SAML

    <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. Acesse SSO em 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. Ao habilitar o SAML pela primeira vez, será necessário configurar seu SSO ID. **Você não poderá alterá-lo depois.**

       Recomenda-se defini-lo como o nome da sua organização ou equipe, usando apenas caracteres alfanuméricos.

    4. Copie o valor de `Entity ID` no portal do Duo e cole no campo `IdP Entity ID` no portal do Windsurf.

    5. Copie o valor de `Single Sign-On URL` no portal do Duo e cole no campo `SSO URL` no portal do Windsurf.

    6. Copie o valor do certificado no portal do Duo e cole no campo `X509 Certificate` no portal do 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. Copie o valor de `SP Identity ID` no portal do Windsurf e cole no campo `Entity ID` no portal do Duo.

    8. Copie o `Callback URL (Assertion Consumer Service URL)` no portal do Windsurf e cole no campo `Assertion Consumer Service (ACS) URL` no portal do Duo.

    9. No portal do Duo, configure as declarações de atributo conforme a seguir:

    <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. Habilite o login SAML no portal do Windsurf para poder testá-lo.

    **ATENÇÃO: NÃO FAÇA LOGOUT NEM FECHE A JANELA NESTE MOMENTO.**

    Se ocorrer um erro ou tempo limite, ajuste suas configurações; caso contrário, será necessário desabilitar suas configurações de SAML no portal do Windsurf.

    **Se você fizer logout ou fechar a janela sem confirmar um teste bem-sucedido, poderá ficar sem acesso.**

    11. Depois que o teste for concluído com sucesso, você pode fazer logout. Agora você pode usar o login via SSO ao acessar a página da sua equipe/organização com o SSO ID configurado na etapa 3.

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

  <Tab title="PingID">
    ## Pré-requisitos

    Este guia pressupõe que você tenha o PingID configurado e atuando como seu IdP organizacional, ou que tenha um IdP externo configurado.

    Você precisará de acesso de administrador às contas do PingID e do Windsurf.

    ## Configurar o PingID para o Windsurf

    1. Acesse Applications e adicione o Windsurf como um SAML Application

    <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. Acesse SSO em 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. Ao habilitar o SAML pela primeira vez, será necessário configurar seu SSO ID. **Você não poderá alterá-lo depois.**

    Recomenda-se defini-lo como o nome da sua organização ou equipe, usando apenas caracteres alfanuméricos.

    4. No PingID, escolha inserir a configuração manualmente e preencha os campos com os seguintes valores:

    * ACS URLs — este é o `Callback URL (Assertion Consumer Service URL)` do portal do Windsurf.
    * Entity ID — este é o `SP Entity ID` do portal do 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. Copie o `Issuer ID` do PingID para o valor `IdP Entity ID` no portal do Windsurf.

    6. Copie o valor `Single Signon Service` do PingID para o valor `SSO URL` no portal do Windsurf.

    7. Baixe o Signing Certificate do PingID como X509 PEM (.crt), abra o arquivo e copie seu conteúdo para o campo `X509 Certificate` no portal do Windsurf.

    **Observação**: certifique-se de que as linhas de início e fim tenham 5 hifens (-) e que nenhum outro caractere seja copiado!

    8. Em attribute mappings, certifique-se de mapear:

    * `saml_subject` — Email Address
    * `firstName` — Given Name
    * `lastName` — Family Name

    <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. Adicione/edite quaisquer outras políticas e acessos conforme exigido pela sua configuração/organização.

    10. Habilite o login SAML no portal do Windsurf para que você possa testá-lo.

    **ATENÇÃO: NÃO FAÇA LOGOUT NEM FECHE A JANELA NESTE MOMENTO.**

    Se ocorrer um erro ou timeout, ajuste suas configurações; caso contrário, será necessário desabilitar suas configurações de SAML no portal do Windsurf.

    **Se você fizer logout ou fechar a janela sem confirmar um teste bem-sucedido, poderá ficar bloqueado.**

    11. Depois que o teste for concluído com sucesso, você pode fazer logout. Agora você pode usar o login via SSO ao acessar a página da sua equipe/organização com o SSO ID configurado na etapa 3.

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