> ## 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 e SCIM

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

<Note>Este recurso está disponível apenas para usuários dos planos Teams e Enterprise.</Note>

<Note>Este recurso não se aplica aos planos Cognition Platform. Para Cognition Platform, o SSO deve ser configurado e gerenciado nas configurações do Cognition Platform.</Note>

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

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

    No console de administração 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, **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) na página do 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 o **SSO URL** da página do console do Google para as configurações do Windsurf em **SSO URL**
    * Copie o **Entity ID** da página do console do Google para as configurações do Windsurf em **Idp Entity ID**
    * Copie o **Certificate** da página do console do Google para as configurações do Windsurf em **X509 Certificate**
    * Clique em **Continue** na página do console do Google

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

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

    A tela seguinte na página do console do Google requer alguma configuração

    * 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 depois em **Save**. Lembre-se de clicar em **Test Login** para confirmar que o login funciona como 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 autenticação com Single Sign-On (SSO) via SAML. Se a sua organização usa Microsoft Entra ID (anteriormente Azure AD), você poderá usar SSO com o Windsurf.

    <Note>O 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 seu aplicativo como **Windsurf**, selecione *Integrate any other application you don't find in the gallery* e então 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 seu novo aplicativo Windsurf, clique em **Set up single sign on** e depois clique 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 **configurações de SSO do Windsurf Teams** 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 **página de configurações de SSO do Windsurf**
       * **Reply URL (Assertion Consumer Service URL)**: copie o valor de **Callback URL** da **página de configurações de SSO do Windsurf**
       * Clique em **Save** no topo

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

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

    ## Parte 3: Configurar as configurações de SSO no portal do Windsurf

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

    10. Na **página de configurações de SSO do Windsurf**:
        * **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**
          <Note>A URL do IdP Entity ID deve terminar com uma barra `/` (por exemplo, `https://sts.windows.net/{tenant-id}/`). Se a URL não incluir a barra final, adicione-a manualmente.</Note>
        * **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 aqui o conteúdo de texto

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

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

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

  <Tab title="SSO (Single Sign-On) do Okta">
    Windsurf Enterprise agora oferece suporte a login com SSO (Single Sign-On) via SAML. Se 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>O Windsurf oferece suporte apenas a SSO iniciado pelo SP; SSO iniciado pelo IdP NÃO é suportado 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 login.

    <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 app como Windsurf (ou qualquer outro nome) e clique em Next.

    Configure as definições do 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 como a seguir e 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 um provedor SAML

    Você deve ser redirecionado para a aba Sign on no seu aplicativo SAML personalizado. Agora, pegue as informações desta página e preencha-as nas 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 do Okta e cole em IdP Entity ID
    * Copie o texto após ‘Sign on URL’ na página do aplicativo do 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.

    Compartilhe a URL personalizada do Login Portal da sua organização com os usuários e peça 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 fizerem login no 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 que sua SSO URL está incorreta; verifique se é alfanumérica e não possui 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 do 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)">
    O Windsurf oferece suporte à sincronização SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos) 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 é altamente recomendado.

    Você vai precisar de:

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

    <Note>
      **Permissões necessárias para a Chave de serviço**

      A Chave de serviço usada para provisionamento SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos) deve ter as seguintes permissões:

      * **Team User Read** - Necessária para ler informações de usuários e grupos
      * **Team User Update** - Necessária para criar e atualizar usuários e grupos
      * **Team User Delete** - Necessária para desativar/excluir usuários e grupos

      Você pode criar uma função personalizada com essas permissões ou usar uma função de administrador existente que as inclua.
    </Note>

    ## Passo 1: Criar uma Função com Permissões SCIM

    Antes de configurar o provisionamento SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos), você precisa criar uma função com as permissões necessárias.

    1. Acesse [Windsurf Team Settings](https://windsurf.com/team/settings)
    2. Em "Other Settings", clique em **Configure** ao lado de **Role Management**
    3. Clique em **Add Role** e dê a ele o nome "SCIM Provisioning"
    4. Adicione as permissões a seguir:
       * Team User Read
       * Team User Update
       * Team User Delete
    5. Clique em **Save**

    ## Passo 2: Navegue até o aplicativo Windsurf existente

    Acesse o Microsoft Entra ID no Azure, clique em Aplicativos empresariais 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>

    ## Passo 3: Configurar provisionamento SCIM

    Clique em Começar em Provisionar Contas de Usuário no meio (etapa 3) e, em seguida, clique em Começar novamente.

    <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 Provisionamento, selecione as opções a seguir.

    Modo de Provisionamento: Automático

    Credenciais do Administrador > URL do Locatário: [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>

    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 no topo da página. Em Configurações da Equipe, selecione Chave de serviço e clique em Adicionar Chave de serviço. Digite qualquer nome de chave (como 'Provisionamento SCIM do Azure'), **selecione a função "Provisionamento SCIM" que você criou anteriormente**, e clique em Criar Chave de serviço. Copie a chave gerada, volte para a página do Azure e cole-a no Token Secreto.

    <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ê deve ver após criar a chave no Windsurf)

    Na página de Provisionamento, clique em Test Connection e isso deve verificar a conexão SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos).

    Agora, acima do formulário de Provisionamento, clique em Salvar.

    ## Passo 4: Configurar o Provisionamento SCIM

    Após clicar em Save, uma nova opção Mappings deve ter aparecido 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 Mapeamentos de atributos, exclua todos os campos sob 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, agora clique 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 de Mapeamento de Atributos, clique em Salvar na parte superior e retorne à página de Provisionamento.

    Agora, na mesma página, em Mappings, clique em Provision Microsoft Entra ID Groups. Agora clique apenas em excluir para externalId e clique em Save no topo. Navegue de volta para a página de 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 de Provisionamento, na parte inferior, também deve haver um botão de alternância de Status de Provisionamento. Defina-o como Ativado para habilitar a sincronização 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 para SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos). Apenas usuários e grupos atribuídos ao aplicativo serão sincronizados com o Windsurf. Note que remover usuários apenas desabilita o acesso ao Windsurf (e impede que ocupem uma licença) em vez de excluir usuários, devido ao design 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 é altamente recomendado.

    Você vai precisar de:

    * Acesso de administrador ao Okta
    * Acesso de administrador ao Windsurf
    * Um aplicativo Windsurf já criado no Okta (normalmente a partir 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 guia General, em App Settings, clique em Edit no canto superior direito. Marque a caixa de seleção ‘Enable SCIM Provisioning’ e depois clique em Save. Uma nova guia de provisioning deve ter aparecido na parte superior.

    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 Service Key Configuration
    * Clique em Configure, depois em Add Service Key e dê um nome à sua chave de API
    * Copie a chave de API, volte para o Okta e cole em HTTP Header - Authorization

    Clique em Save após preencher Provisioning Integration.

    ## Etapa 3: Configure o provisionamento

    Na guia Provisioning, à esquerda devem aparecer duas novas seções. Clique em To App e em Edit Provisioning to App. Marque as opções 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: Configure o provisionamento de grupos (opcional)

    Para sincronizar grupos com o Windsurf, você deverá especificar quais grupos enviar. No aplicativo, clique na guia Push Groups na parte superior. Agora clique em + Push Groups -> Find Groups by name. Filtre pelo grupo que deseja adicionar, certifique-se de que Push group memberships immediately esteja marcado e, em seguida, clique em Save. O grupo será criado e seus membros serão sincronizados com o Windsurf. Os grupos podem então ser usados para filtrar a visualização 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 gerenciar grupos no Windsurf com a API SCIM (System for Cross-domain Identity Management — padrão para provisionamento de identidades de usuários e grupos).

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

    ## Criando Chave Secreta da API

    Acesse [https://windsurf.com/team/settings](https://windsurf.com/team/settings). Em Configuração de Chave de Serviço, clique em Adicionar Chave de Serviço. Digite qualquer nome para a chave (como 'Chave de Provisionamento Azure') e clique em Criar Chave de Serviço. Copie a chave resultante 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 tanto às contas do Duo quanto 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 atributos da seguinte forma:

    <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 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 sem acesso.**

    11. Depois que o teste for concluído com sucesso, você pode fazer logout. Agora você pode usar o login por 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 presume que você tem o PingID configurado e atuando como seu IdP organizacional, ou que tem um IdP externo configurado.

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

    ## Configurar o PingID para o Windsurf

    1. Vá até 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. Vá até 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 definir seu SSO ID. **Você não poderá alterá-lo depois.**

    Recomenda-se definir 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 — é o `Callback URL (Assertion Consumer Service URL)` do portal do Windsurf.
    * Entity ID — é 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 campo `IdP Entity ID` no portal do Windsurf.

    6. Copie o valor `Single Signon Service` do PingID para o campo `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 completas com 5 hifens (-) estejam incluídas e que nenhum outro caractere seja copiado!

    8. Em attribute mappings, garanta o mapeamento de:

    * `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 poder 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 sem acesso.**

    11. Quando o teste for concluído com sucesso, você poderá fazer logout. Agora você pode usar o login com 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>
