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

# Configurare SSO e SCIM

> Configura Single Sign-On (SSO) e il provisioning SCIM per la tua organizzazione con Google Workspace, Microsoft Entra ID, Okta o altri provider di identità SAML.

<Note>Questa funzionalità è disponibile solo per gli utenti Enterprise.</Note>

<Note>Questa funzionalità non è disponibile per i piani Cognition Platform. Per Cognition Platform, SSO deve invece essere configurato e gestito nelle impostazioni di Cognition Platform.</Note>

<Tabs>
  <Tab title="SSO di Google">
    Devin Desktop ora supporta l'accesso tramite Single Sign-On (SSO) via SAML. Se la tua organizzazione usa Microsoft Entra, Okta, Google Workspace o un altro provider di identità che supporta SAML, potrai usare SSO con Devin Desktop.

    <Note>Devin Desktop supporta solo l'SSO avviato da SP; l'SSO avviato da IDP NON è attualmente supportato.</Note>

    ### Configurare l'applicazione IDP

    Nella console di amministrazione Google (admin.google.com), fai clic su **Apps -> Web and mobile apps** a sinistra.

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

    Fai clic su **Add app**, quindi su **Add custom SAML app**.

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

    Compila **App name** con `Windsurf`, quindi fai clic su **Next**.

    La schermata successiva (**Google Identity Provider details**) nella console di Google contiene i dati che dovrai copiare nelle impostazioni SSO di Devin Desktop su [https://windsurf.com/team/settings](https://windsurf.com/team/settings).

    * Copia **SSO URL** dalla console di Google nelle impostazioni di Devin Desktop, nel campo **SSO URL**
    * Copia **Entity ID** dalla console di Google nelle impostazioni di Devin Desktop, nel campo **Idp Entity ID**
    * Copia **Certificate** dalla console di Google nelle impostazioni di Devin Desktop, nel campo **X509 Certificate**
    * Fai clic su **Continue** nella console di Google

    La schermata successiva nella console di Google richiede di copiare alcuni dati dalla pagina delle impostazioni di Codeium

    * Copia **Callback URL** dalla pagina delle impostazioni di Codeium nella console di Google, nel campo **ACS URL**
    * Copia **SP Entity ID** dalla pagina delle impostazioni di Codeium nella console di Google, nel campo **SP Entity ID**
    * Imposta il formato di **Name ID** su **EMAIL**
    * Fai clic su **Continue** nella console di Google

    La schermata successiva nella console di Google richiede alcune configurazioni

    * Fai clic su **Add Mapping**, seleziona **First name** e imposta **App attributes** su **firstName**
    * Fai clic su **Add Mapping**, seleziona **Last name** e imposta **App attributes** su **lastName**
    * Fai clic su **Finish**

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

    Nella pagina delle impostazioni di Codeium, fai clic su **Enable Login with SAML**, quindi su **Save**. Assicurati poi di fare clic su **Test Login** per verificare che l'accesso funzioni come previsto. Da questo momento, l'accesso SSO sarà obbligatorio per tutti gli utenti.
  </Tab>

  <Tab title="Microsoft Entra ID">
    Devin Desktop Enterprise ora supporta l'accesso tramite Single Sign-On (SSO) via SAML. Se la tua organizzazione usa Microsoft Entra ID (in precedenza Azure AD), potrai usare l'SSO con Devin Desktop.

    <Note>Devin Desktop supporta solo l'SSO avviato da SP; l'SSO avviato da IDP al momento NON è supportato.</Note>

    ## Parte 1: Creare un'applicazione Enterprise in Microsoft Entra ID

    <Note>Tutti i passaggi in questa sezione vengono eseguiti nel **centro di amministrazione di Microsoft Entra ID**.</Note>

    1. In Microsoft Entra ID, fai clic su **Add**, quindi su **Enterprise Application**.

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

    2. Fai clic su **Create your own application**.

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

    3. Assegna alla tua applicazione il nome **Devin Desktop**, seleziona *Integrate any other application you don't find in the gallery*, quindi fai clic su **Create**.

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

    ## Parte 2: Configurare SAML e gli attributi utente in Microsoft Entra ID

    <Note>Tutti i passaggi in questa sezione vengono eseguiti nel **centro di amministrazione di Microsoft Entra ID**.</Note>

    4. Nella tua nuova applicazione Devin Desktop, fai clic su **Set up single sign on**, quindi su **SAML**.

    5. Fai clic su **Edit** in **Basic SAML Configuration**.

    6. **Lascia aperta questa scheda di Entra ID** e apri una nuova scheda per accedere alle **impostazioni SSO di Devin Desktop Teams** all'indirizzo [https://windsurf.com/team/settings](https://windsurf.com/team/settings).

    7. Nel modulo di configurazione SAML di **Microsoft Entra ID**:
       * **Identifier (Entity ID)**: copia il valore **SP Entity ID** dalla **pagina delle impostazioni SSO di Devin Desktop**
       * **Reply URL (Assertion Consumer Service URL)**: copia il valore **Callback URL** dalla **pagina delle impostazioni SSO di Devin Desktop**
       * Fai clic su **Save** in alto

    8. Configura gli attributi utente per visualizzare correttamente il nome. In **Microsoft Entra ID**, in **Attributes & Claims**, fai clic su **Edit**.

    9. Crea 2 nuovi claim facendo clic su **Add new claim** per ciascuno:
       * **Primo claim**: Name = `firstName`, Source attribute = `user.givenname`
       * **Secondo claim**: Name = `lastName`, Source attribute = `user.surname`

    ## Parte 3: Configurare le impostazioni SSO nel portale Devin Desktop

    <Note>Completa la configurazione nel **portale Devin Desktop** ([https://windsurf.com/team/settings](https://windsurf.com/team/settings)).</Note>

    10. Nella **pagina delle impostazioni SSO di Devin Desktop**:
        * **Pick your SSO ID**: scegli un identificatore univoco per il portale di accesso del tuo team (non potrà essere modificato in seguito)
        * **IdP Entity ID**: copia il valore da **Microsoft Entra ID** in **Set up Devin Desktop** → **Microsoft Entra Identifier**
          <Note>L'URL dell'IdP Entity ID deve terminare con una `/` finale (ad es., `https://sts.windows.net/{tenant-id}/`). Se l'URL non include la barra finale, aggiungila manualmente.</Note>
        * **SSO URL**: copia il valore **Login URL** da **Microsoft Entra ID**
        * **X509 Certificate**: scarica il **SAML certificate (Base64)** da **Microsoft Entra ID**, apri il file e incollane qui il contenuto testuale

    11. Nel **portale Devin Desktop**, fai clic su **Enable Login with SAML**, quindi su **Save**.

    12. **Testa la configurazione**: fai clic su **Test Login** per verificare che la configurazione SSO funzioni come previsto.

    <Note>**Importante**: non disconnetterti e non chiudere la pagina delle impostazioni di Devin Desktop finché non hai testato correttamente l'accesso. Se il test non riesce, potresti dover risolvere i problemi di configurazione prima di procedere.</Note>
  </Tab>

  <Tab title="SSO di Okta">
    Devin Desktop Enterprise ora supporta l'accesso con Single Sign-On (SSO) tramite SAML. Se la tua organizzazione usa Microsoft Entra, Okta, Google Workspaces o un altro provider di identità che supporta SAML, potrai usare SSO con Devin Desktop.

    <Note>Devin Desktop supporta solo l'SSO avviato da SP; l'SSO avviato da IDP NON è attualmente supportato.</Note>

    ### Configurare l'applicazione IDP

    Fai clic su Applications nella barra laterale sinistra, quindi su Create App Integration

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

    Seleziona SAML 2.0 come metodo di accesso

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

    Imposta come nome dell'app Devin Desktop (o qualsiasi altro nome), quindi fai clic su Next

    Configura le impostazioni SAML come segue

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

    Configura gli attributi come segue, quindi fai clic su **Next**.

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

    Nella sezione feedback, seleziona “This is an internal app that we have created”, quindi fai clic su **Finish**.

    ### Registrare Okta come provider SAML

    Dovresti essere reindirizzato alla scheda Sign on della tua applicazione SAML personalizzata. A questo punto, dovrai prendere le informazioni presenti in questa pagina e inserirle nelle impostazioni SSO di Devin Desktop.

    * Apri [https://windsurf.com/team/settings](https://windsurf.com/team/settings) e fai clic su Configure SAML
    * Copia il testo dopo ‘Issuer’ nella pagina dell'applicazione Okta e incollalo in Idp Entity ID
    * Copia il testo dopo ‘Sign on URL’ nella pagina dell'applicazione Okta e incollalo in SSO URL
    * Scarica il Signing Certificate e incollalo in X509 certificate
    * Seleziona Enable Login with SAML, quindi fai clic su Save
    * Verifica l'accesso con il pulsante Test Login. Dovresti vedere un messaggio di conferma:

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

    A questo punto dovrebbe essere tutto configurato e ora puoi aggiungere utenti alla nuova applicazione Okta di Devin Desktop.

    Dovresti condividere con i tuoi utenti l'URL personalizzato del portale di accesso della tua organizzazione e chiedere loro di accedere tramite quel collegamento.

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

    Gli utenti che accedono a Devin Desktop tramite SSO saranno approvati automaticamente nel team.

    ### Avvertenze

    Tieni presente che Devin Desktop al momento non supporta i flussi di accesso avviati da IDP.

    Inoltre, non supportiamo ancora OIDC.

    # Risoluzione dei problemi

    ### Login with SAML config failed: Firebase: Error (auth/operation-not-allowed)

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

    Questo indica che il tuo SSO ID non è valido oppure che l'URL SSO è errato; assicurati che sia alfanumerico e che non contenga spazi aggiuntivi o caratteri non validi. Ricontrolla i passaggi della guida e assicurati di usare i valori corretti.

    ### Login with SAML config failed: Firebase: SAML Response \<Issuer> mismatch. (auth/invalid-credential)

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

    Questo indica che il tuo IdP Entity ID non è valido; assicurati di copiarlo correttamente dal portale Okta, senza caratteri o spazi aggiuntivi prima o dopo la stringa.

    ### Impossibile verificare la firma in samlresponse

    Questo indica che il valore del tuo certificato X509 non è corretto; assicurati di copiare la chiave corretta e che sia formattata come:

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

  <Tab title="Microsoft Entra ID SCIM">
    Devin Desktop supporta la sincronizzazione SCIM per utenti e gruppi con Microsoft Entra ID. Non è necessario configurare l'SSO per utilizzare la sincronizzazione SCIM, ma è vivamente consigliato.

    Avrai bisogno di:

    * Accesso amministrativo a Microsoft Entra ID
    * Accesso amministrativo a Devin Desktop
    * Un'applicazione desktop Devin già esistente in Entra ID (di norma dalla tua applicazione SSO esistente)

    <Note>
      **Autorizzazioni richieste per la chiave di servizio**

      La chiave di servizio usata per il provisioning SCIM deve avere le seguenti autorizzazioni:

      * **Team User Read** - Necessaria per leggere le informazioni su utenti e gruppi
      * **Team User Update** - Necessaria per creare e aggiornare utenti e gruppi
      * **Team User Delete** - Necessaria per disattivare/eliminare utenti e gruppi

      Puoi creare un ruolo personalizzato con queste autorizzazioni oppure usare un ruolo admin esistente che le includa.
    </Note>

    ## Passaggio 1: Creare un ruolo con autorizzazioni SCIM

    Prima di configurare il provisioning SCIM, è necessario creare un ruolo con le autorizzazioni necessarie.

    1. Vai a [Windsurf Team Settings](https://windsurf.com/team/settings)
    2. In "Other Settings", fai clic su **Configura** accanto a **Role Management**
    3. Fai clic su **Aggiungi ruolo** e assegnagli il nome "SCIM Provisioning"
    4. Aggiungi le seguenti autorizzazioni:
       * Visualizzazione dell'utente del team
       * Aggiornamento dell'utente del team
       * Eliminazione dell'utente del team
    5. Fai clic su **Save**

    ## Passaggio 2: Accedere all'applicazione Devin Desktop esistente

    Vai a Microsoft Entra ID su Azure, fai clic su Enterprise applications nella barra laterale sinistra, quindi fai clic sull'applicazione Devin Desktop esistente nell'elenco.

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

    ## Passaggio 3: Configurazione del provisioning SCIM

    Fare clic su Get started sotto Provision User Accounts al centro (passaggio 3), quindi fare nuovamente clic su Get started.

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

    Nella pagina di configurazione del provisioning, selezionare le opzioni seguenti.

    Modalità di provisioning:  Automatica

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

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

    Lascia aperta la pagina di provisioning di Azure, vai al portale web Devin Desktop e fai clic sull'icona del profilo nella barra di navigazione in cima alla pagina. In Team Settings, seleziona Service Key e fai clic su Add Service Key. Inserisci un nome qualsiasi per la chiave (ad esempio 'Azure SCIM Provisioning'), **seleziona il ruolo "SCIM Provisioning" creato in precedenza**, quindi fai clic su Create Service Key. Copia la chiave generata, torna alla pagina di Azure e incollala nel campo Secret Token.

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

    (Cosa dovresti vedere dopo aver creato la key su Devin Desktop)

    Nella pagina Provisioning, fare clic su Test Connection: la connessione SCIM dovrebbe risultare verificata.

    Ora, nella parte superiore del form di provisioning, fare clic su Save.

    ## Passaggio 4: Configurare il provisioning SCIM

    Dopo aver fatto clic su Save, nella pagina Provisioning dovrebbe essere comparsa una nuova opzione Mappings. Espandere Mappings e fare clic su Provision Microsoft Entra ID Users

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

    Nella sezione Mappature attributi, eliminare tutti i campi sotto displayName, lasciando solo i campi userName, active e displayName.

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

    Per active, fare clic su Edit. In Expression, modificare il campo in

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

    Quindi fare clic su Ok.

    Gli attributi utente dovrebbero essere simili a

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

    Nella pagina Attribute Mapping, fare clic su Save in alto e tornare alla pagina Provisioning.

    Nella stessa pagina, sotto Mappings fare clic su Provision Microsoft Entra ID Groups. Fare clic su delete solo per externalId, quindi fare clic su Save in alto. Tornare alla pagina Provisioning.

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

    Nella parte inferiore della pagina Provisioning dovrebbe essere presente anche un toggle Stato provisioning. Impostarlo su On per abilitare la sincronizzazione SCIM. Da questo momento, ogni 40 minuti gli utenti e i gruppi dell'applicazione Entra ID verranno sincronizzati con Devin Desktop.

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

    Fare clic su Save per completare l'operazione: la sincronizzazione di utenti e gruppi tramite SCIM è ora abilitata. Solo gli utenti e i gruppi assegnati all'applicazione verranno sincronizzati con Devin Desktop. Tieni presente che la rimozione degli utenti ne disabilita soltanto l'accesso a Devin Desktop (e impedisce loro di occupare un seat), senza eliminarli, a causa del design SCIM di Azure.
  </Tab>

  <Tab title="Okta SCIM">
    Devin Desktop supporta la sincronizzazione SCIM di utenti e gruppi con Okta. Non è necessario configurare l'SSO per usare la sincronizzazione SCIM, ma è vivamente consigliato.

    Ti serviranno:

    * accesso Admin a Okta
    * accesso Admin a Devin Desktop
    * un'applicazione Devin Desktop già esistente in Okta (di norma quella della tua applicazione SSO esistente)

    ## Passaggio 1: vai all'applicazione Devin Desktop esistente

    Vai in Okta, fai clic su Applications, poi su Applications nella barra laterale sinistra, quindi fai clic sull'applicazione Devin Desktop esistente nell'elenco delle applicazioni.

    ## Passaggio 2: abilita il provisioning SCIM

    Nella scheda general, in App Settings fai clic su Edit in alto a destra. Quindi seleziona la casella 'Enable SCIM Provisioning', poi fai clic su Save. In alto dovrebbe comparire una nuova scheda provisioning.

    Ora vai in provisioning, fai clic su Edit e inserisci i seguenti valori nei campi:

    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

    Per HTTP Header - Authorization, puoi generare il token da:

    * [https://windsurf.com/team/settings](https://windsurf.com/team/settings) e vai a Service Key Configuration
    * Fai clic su Configure, poi su Add Service Key, e assegna un nome alla tua API key
    * Copia l'API key, torna in Okta e incollala in HTTP Header - Authorization

    Fai clic su Save dopo aver completato Provisioning Integration.

    ## Passaggio 3: configura il provisioning

    Nella scheda provisioning, sulla sinistra dovrebbero esserci due nuove schede. Fai clic su To App, quindi su Edit Provisioning to App. Seleziona le caselle Create Users, Update User Attributes e Deactivate Users, quindi fai clic su Save.

    Dopo questo passaggio, tutti gli utenti assegnati al gruppo verranno sincronizzati con Devin Desktop.

    ## Passaggio 4: configura il provisioning dei gruppi (facoltativo)

    Per sincronizzare i gruppi con Devin Desktop, dovrai specificare quali gruppi inviare. Nell'applicazione, fai clic sulla scheda Push Groups in alto. Ora fai clic su + Push Groups -> Find Groups by name. Filtra il gruppo che vuoi aggiungere, assicurati che Push group memberships immediately sia selezionato, quindi fai clic su Save. Il gruppo verrà creato e i membri del gruppo verranno sincronizzati con Devin Desktop. I gruppi possono poi essere usati per filtrare le analytics di gruppo nella pagina analytics.
  </Tab>

  <Tab title="API SCIM">
    Questa guida illustra come creare e gestire i group in Devin Desktop tramite l'API SCIM.

    Ci sono casi in cui si preferisce effettuare il provisioning dei gruppi manualmente anziché tramite il proprio provider di identità (Azure/Okta). Le aziende potrebbero voler eseguire il provisioning dei Groups da una fonte interna diversa (sito HR, strumento di gestione del codice sorgente, ecc.) a cui Devin Desktop non ha accesso, oppure potrebbero aver bisogno di un controllo più granulare sui Groups rispetto a quanto offerto dal proprio provider di identità. I Groups possono quindi essere creati tramite API con una richiesta HTTP. Di seguito sono riportati esempi della richiesta HTTP tramite CURL.

    In questa sezione sono disponibili 5 API principali: Create Group, Add group members, Replace group members, Delete Group e List Users in a Group.

    ### Crea gruppo

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

    ### Aggiungi membri al gruppo

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

    ### Sostituisci i membri del gruppo

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

    ### Elimina gruppo

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

    ### Elenca gruppo

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

    ### Elencare gli utenti in un gruppo

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

    È necessario creare prima il gruppo, quindi sostituire group per creare un gruppo con membri al suo interno. Sarà inoltre necessario eseguire la codifica URL dei nomi dei gruppi se il nome del gruppo contiene un carattere speciale come lo spazio; ad esempio, un nome gruppo come 'Engineering Group' dovrà essere 'Engineering%20Group' nell'URL.

    Tieni presente che gli utenti devono essere creati in Devin Desktop (tramite SCIM o creando manualmente l'account) prima di poter essere aggiunti a un gruppo.

    ## API utente

    Sono disponibili anche API per gli utenti. Di seguito sono elencate alcune delle API SCIM più comuni supportate da Devin Desktop.

    Disabilita un utente (per abilitarlo, sostituisci false con true):

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

    Disabilita l'accesso CLI per un utente (imposta `cliActive` su `true` per riabilitarlo):

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

    L'attributo `cliActive` controlla se un utente può accedere a Devin CLI. È indipendente dall'attributo `active` — disabilitare l'accesso alla CLI non influisce sul seat dell'utente né sull'accesso agli altri prodotti Devin Desktop. Se `cliActive` non è impostato per un utente, si applica la policy di accesso alla CLI predefinita del team.

    Crea un utente:

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

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

    ## Creazione di una chiave API segreta

    Vai su [https://windsurf.com/team/settings](https://windsurf.com/team/settings). Nella sezione Service Key Configuration, fai clic su Add Service Key. Inserisci un nome a piacere per la chiave (ad esempio 'Azure Provisioning Key') e fai clic su Create Service Key. Copia la chiave generata e salvala: potrai usarla per autorizzare le API indicate sopra.
  </Tab>

  <Tab title="Duo">
    ## Prerequisiti

    Questa guida presuppone che Duo sia configurato e agisca come IdP della tua organizzazione, oppure che sia configurato un IdP esterno.

    Ti servirà l'accesso da amministratore sia all'account Duo sia all'account Devin Desktop.

    ## Configura Duo per Devin Desktop

    1. Vai su Applications e aggiungi un service provider SAML generico

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

    2. Vai su SSO in Team Settings

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

    3. Quando abiliti SAML per la prima volta, dovrai configurare il tuo ID SSO. **Non potrai più modificarlo in seguito.**

       Ti consigliamo di impostarlo usando il nome della tua organizzazione o del tuo team, con soli caratteri alfanumerici.

    4. Copia il valore `Entity ID` dal portale Duo e incollalo nel campo `IdP Entity ID` nel portale Devin Desktop.

    5. Copia il valore `Single Sign-On URL` dal portale Duo e incollalo nel campo `SSO URL` nel portale Devin Desktop.

    6. Copia il valore del certificato dal portale Duo e incollalo nel campo `X509 Certificate` nel portale Devin Desktop

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

    7. Copia il valore `SP Identity ID` dal portale Devin Desktop e incollalo nel campo `Entity ID` nel portale Duo.

    8. Copia il valore `Callback URL (Assertion Consumer Service URL)` dal portale Devin Desktop e incollalo nel campo `Assertion Consumer Service (ACS) URL` nel portale Duo.

    9. Nel portale Duo, configura le istruzioni sugli attributi come segue:

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

    10. Abilita il login SAML nel portale Devin Desktop in modo da poterlo testare.

    **NOTA: NON DISCONNETTERTI E NON CHIUDERE LA FINESTRA A QUESTO PUNTO.**

    Se ricevi un errore o la richiesta va in timeout, verifica le impostazioni; altrimenti dovrai disabilitare le impostazioni SAML nel portale Devin Desktop.

    **Se ti disconnetti o chiudi la finestra senza aver confermato che il test è andato a buon fine, potresti perdere l'accesso.**

    11. Una volta completato con successo il test, puoi disconnetterti. Ora puoi usare l'accesso tramite SSO quando visiti la pagina del tuo team/della tua organizzazione con l'ID SSO che hai configurato nel passaggio 3.

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

  <Tab title="PingID">
    ## Prerequisiti

    Questa guida presuppone che PingID sia configurato e che funga da provider di identità (IdP) per la tua organizzazione, oppure che sia configurato un IdP esterno.

    Avrai bisogno di accesso come amministratore sia a PingID sia agli account Devin Desktop.

    ## Configura PingID per Devin Desktop

    1. Vai su Applications e aggiungi Devin Desktop come applicazione SAML

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

    2. Vai a SSO in Team Settings

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

    3. Quando abiliti SAML per la prima volta, dovrai configurare il tuo ID SSO. **Non potrai più modificarlo in seguito.**

    Ti consigliamo di impostarlo sul nome della tua organizzazione o del team, utilizzando solo caratteri alfanumerici.

    4. In PingID, scegli di inserire manualmente la configurazione e compila i campi con i seguenti valori:

    * ACS URLs - questo è il `Callback URL (Assertion Consumer Service URL)` del portale Devin Desktop.
    * Entity ID - questo è lo `SP Entity ID` del portale Devin Desktop.

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

    5. Copia l'`Issuer ID` da PingID nel valore `IdP Entity ID` del portale Devin Desktop.

    6. Copia il valore `Single Signon Service` da PingID nel valore `SSO URL` del portale Devin Desktop.

    7. Scarica il certificato di firma da PingID come X509 PEM (.crt), apri il file e copia il contenuto nel valore `X509 Certificate` del portale Devin Desktop.

    **Nota**: assicurati che siano presenti le righe iniziale e finale con 5 trattini (-) e che non vengano copiati altri caratteri!

    8. Nelle mappature degli attributi, assicurati di mappare:

    * `saml_subject` - Indirizzo email
    * `firstName` - Nome
    * `lastName` - Cognome

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

    9. Aggiungi/modifica eventuali altre policy e accessi in base alla tua configurazione/organizzazione

    10. Abilita l'accesso SAML nel portale Devin Desktop in modo da poterlo testare.

    **NOTA: A QUESTO PUNTO NON DISCONNETTERTI E NON CHIUDERE LA FINESTRA.**

    Se ricevi un errore o la sessione scade, verifica le impostazioni; altrimenti dovrai disabilitare le impostazioni SAML nel portale Devin Desktop.

    **Se ti disconnetti o chiudi la finestra senza confermare che il test è andato a buon fine, potresti perdere l'accesso.**

    11. Una volta completato con successo il test, puoi disconnetterti. Ora puoi usare l'accesso tramite SSO quando visiti la pagina del tuo team/della tua organizzazione con l'ID SSO che hai configurato al passaggio 3.

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