# Abilita l'Identity Provider di Google

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FhXD8DbZpLJKPz4Kpqpuh%2Fimage.png?alt=media&#x26;token=52071303-8a78-4df4-ac50-06f985282bad" alt=""><figcaption><p>Login con IDP Google</p></figcaption></figure>

Per consentire ai Member di Crystal di accedere a Crystal con le proprie credenziali Microsoft, l'utente Admin deve prima impostare Google come Identity Provider.

In qualità di Admin, è necessario seguire un processo che coinvolge sia **Google** che **Crystal.**

Segui questo tutorial.

{% hint style="info" %} <mark style="color:blue;">**Nota Bene**</mark>

Gli Identity Provider possono essere utilizzati anche per [*creare nuovi Gruppi*](https://docs.igenius.ai/italiano/crystal-console/utenti/gruppi)*.*
{% endhint %}

## **Step 1 - Crea e configura un Service Account**

Prima di tutto, è necessario creare un account Google Service con i privilegi corretti e la delega a livello di dominio.

**1a) Crea un Service Account**

1. accedi a[ Google Cloud Platform.](https://console.cloud.google.com/welcome/new)  Assicurati di selezionare il progetto corretto o di crearne uno dedicato a Crystal.
2. Seleziona *"APIs & Servizi",* poi *"*[*Credentials*](https://console.cloud.google.com/apis/credentials)*".*

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FKh5jhVdkRM6kCVCeETzJ%2Fimage.png?alt=media&#x26;token=cf14a8e4-333d-4b90-8f15-9c73e42935c2" alt="" width="375"><figcaption></figcaption></figure>

3. dal menu superiore, seleziona *"Crea credenziali" → "Service account"*.

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FcyE73BVCAZh4kc76IQrQ%2Fimage.png?alt=media&#x26;token=f1b935e4-d3b9-4abc-9530-27de5f6e2321" alt="" width="563"><figcaption></figcaption></figure>

4. scegli un nome per il tuo service account e salta tutti i passaggi opzionali

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FUKXl33yZqWts1hjDxb3N%2Fimage.png?alt=media&#x26;token=ae4dfe33-3a1c-4012-9d0a-45a7247bb0f0" alt="" width="563"><figcaption></figcaption></figure>

Una volta fatto, dovresti vedere i dettagli del nuovo Service Account.

**1b) Configura il Service Account**

Per effettuare le chiamate API corrette, è necessario abilitare la delega dello spazio di lavoro e aggiungere una chiave al service account:

1. seleziona *"APIs & Servizi"*, poi [*"Credentials"*](https://console.cloud.google.com/apis/credentials)
2. seleziona il Service Account appena creato dall'elenco della sezione *"Account Services"*

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FMpPiGVPhneAqPWllWt8g%2Fimage.png?alt=media&#x26;token=95f18c1d-dc1d-4c3a-a1ce-58612b9cf18f" alt="" width="563"><figcaption></figcaption></figure>

3. sotto i dettagli, seleziona la casella di controllo *"Abilita la delega dell'area di lavoro di Google a livello di dominio"*

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FNXMiyBqSvEt55tOh8oRz%2Fimage.png?alt=media&#x26;token=3ececf34-8cca-4bc9-bbef-a033ebdfcd50" alt="" width="563"><figcaption></figcaption></figure>

4. nella scheda "Keys", seleziona *"Aggiungi Key"→ "Crea una nuova Key"*

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FhaVBpqeUoWWtUeH96QkM%2Fimage.png?alt=media&#x26;token=b1ca0464-15a2-44a3-aea2-4bfcd3d8ce36" alt="" width="563"><figcaption></figcaption></figure>

5. salva il file scaricato in una posizione nota: sarà necessario caricarlo in seguito durante la configurazione di Crystal.

**1c) Abilita l'API Admin SDK**

Per poter effettuare chiamate API alle API di Google Workspace Admin e recuperare i dettagli su Utenti e Gruppi, è necessario:

1. caricare le API da "*API & Services" → "Dashboard"* nel menu principale

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FA85NHyxWnGPNyKO320MH%2Fimage.png?alt=media&#x26;token=28c31c81-199d-491a-8533-3503a51d9b5d" alt="" width="563"><figcaption></figcaption></figure>

2. cliccare su *"Abilita API e servizi"*
3. cercare *"Admin SDK"*

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FAXbIFtWMDABD0UEMkxOm%2Fimage.png?alt=media&#x26;token=8262d642-4b37-489f-946e-f4055ae31ccc" alt="" width="563"><figcaption></figcaption></figure>

4. selezionare Admin SDK API

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2Ffh9iXbJ3fWmzkGyES4Qg%2Fimage.png?alt=media&#x26;token=3a9fa729-4e09-4d57-9461-f1d3fe197868" alt="" width="563"><figcaption></figcaption></figure>

5. abilitare l'API (se non è ancora abilitata)

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2F2KnBJwyKSMgZ7DBTLofY%2Fimage.png?alt=media&#x26;token=3cd220cb-8a9c-4ac9-8fae-e45e4667c256" alt="" width="563"><figcaption></figcaption></figure>

**1d) Abilita la delega a livello di dominio**

Per autorizzare il tuo Account Service a svolgere le attività specifiche di cui necessiti, devi:

1. accedere a [https://admin.google.com](https://admin.google.com/)​
2. andare su *"Sicurezza"* → *"API Controlli"* (se non vedi la voce *"Sicurezza"* clicca prima su *"Altro")*

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FyTWkvmVdgH2Tu2uuS8D4%2Fimage%20(2).png?alt=media&#x26;token=4b1f4d32-f965-4fa8-9016-cc7af01a6339" alt="" width="375"><figcaption></figcaption></figure>

3. scorrere fino alla sezione delegazione a livello di dominio e selezionare *"Gestisci delegazione a livello di dominio"*

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2Fz6rLTzzVwu7juOf8F6CO%2Fimage%20(3).png?alt=media&#x26;token=25a2eb40-930c-489c-b6cb-07cb181af995" alt="" width="558"><figcaption></figcaption></figure>

4. selezionare *"Aggiungi nuovo"* e compilare i dettagli. L'ID cliente è l'ID cliente del service account. È inoltre necessario aggiungere i seguenti due OAuth:

$$
<https://www.googleapis.com/auth/admin.directory.group.readonly>
$$

$$
<https://www.googleapis.com/auth/admin.directory.user.readonly​>
$$

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FtjKMDKFMUpElwVeL68hM%2Fimage.png?alt=media&#x26;token=ad84b50f-4a27-4098-b6a0-9754b5172025" alt="" width="563"><figcaption></figcaption></figure>

## Step 2 - Creare e configurare l'ID del client OAuth <a href="#step-2-creare-e-configurare-lid-del-client-oauth" id="step-2-creare-e-configurare-lid-del-client-oauth"></a>

Per abilitare la funzione Login with Google, è necessario creare un'applicazione web

1. vai su *"APIs & Servizi -> Credenziali"*
2. clicca su *"+ Creare Credenziali"*
3. seleziona *“OAuth client ID”*

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FEEPRXpWNIjcQ9hWZAIMM%2Fimage.png?alt=media&#x26;token=398cce96-8877-4404-bae7-312aefe19aef" alt=""><figcaption></figcaption></figure>

Se non lo si è già fatto, GCP chiederà di configurare la schermata di consenso:

1. cliccare su *"Configura schermata di consenso"*
2. selezionare il tipo di utente: Interno
3. fare clic su "*Crea".*
4. torna a *"API e servizi"* → *"Credenziali"* e clicca su "*+ Crea credenziali"*

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FdRqAmcpEydyExL8MWqtn%2Fimage.png?alt=media&#x26;token=ac16b87a-414d-4df7-aac7-9c0f58988c1e" alt="" width="563"><figcaption></figcaption></figure>

5. ora puoi procedere con la configurazione dell'ID client OAuth. Compila il modulo con nomi descrittivi. La cosa più importante è aggiungere come URI di reindirizzamento autorizzato l'url di reindirizzamento di crystal oauth2

$$
https\://{tenant-name}.crystal.{ai}/login-manager/login/google/complete
$$

{% hint style="info" %}
Sostituisci *{tenant-name} con il nome del dominio scelto per il tuo Progetto Crystal*
{% endhint %}

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FWD82a6EnMMe2rqLXDIlf%2Fimage.png?alt=media&#x26;token=3addfa73-31c6-48b6-8d01-68d513c71b7f" alt="" width="563"><figcaption></figcaption></figure>

6. una volta creato, salvare il **client id** e il **client secret**. Ne avrai bisogno per completare la configurazione dell'IDP sulla Console descritta al punto 3. È possibile copiarli e incollarli in una posizione a scelta, oppure scaricare il file JSON.

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FuOcJuhkLaolCzpAit1np%2Fimage.png?alt=media&#x26;token=c3abee71-0bb2-4429-8944-ddee932b14cf" alt="" width="563"><figcaption></figcaption></figure>

## Step 3 - Configura il nuovo IDP nella Crystal Console&#x20;

L'ultimo passaggio verrà eseguito all'interno della Crystal Console:&#x20;

1. dal tab Utenti, alla voce *"Identity Provider"*, seleziona *"Aggiungi nuovo IDP"*

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FylbbS2ZH6cvMLUsyWgj4%2Fimage.png?alt=media&#x26;token=df2c3c80-23eb-4332-a1e7-3c03ef0160ab" alt=""><figcaption></figcaption></figure>

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FxQiW8Opt8jYIIwaIgdBD%2Fimage.png?alt=media&#x26;token=53719091-3aa6-4a52-9ef9-086e20d55a11" alt=""><figcaption></figcaption></figure>

2. seleziona Google Workspace come tipo di connessione

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FptXWyIYEKUxQd0SiJgOP%2Fimage.png?alt=media&#x26;token=4b2b8ebb-502a-471b-8c99-3c5b31860fd5" alt="" width="563"><figcaption></figcaption></figure>

3. compila i campi richiesti con i valori corretti e carica la Secret Account key scaricata nello **Step 1b**.&#x20;

Le caselle si riferiscono al Client OAuth2 (**Step 2**), mentre la Secret Account key si riferisce al Service Account (**Step 1**).

{% hint style="warning" %} <mark style="color:orange;">**Ricorda**</mark>

* **Admin User**: l'indirizzo e-mail dell'utente amministratore della tua azienda
* **Domain**: il dominio principale del Google Workspace della tua azienda
* **Client ID**: il client id copiato nel passaggio 2 (ID cliente OAuth2)&#x20;
* **Redirect URI**: il Redirect URI configurato nel passaggio 2 (ID cliente OAuth2)
* **Codice segreto**: il client secret copiato nel passaggio 2 (ID client OAuth2)
  {% endhint %}

Ecco un esempio di campi compilati correttamente:

<figure><img src="https://242936509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnnKpOPNK55hq8nWnuDD%2Fuploads%2FsnZGxTd5hYTPVYlzju8u%2Fimage.png?alt=media&#x26;token=c48a56e2-939b-47c5-b314-a0720da202da" alt="" width="375"><figcaption></figcaption></figure>

Se la connessione riesce, sarai in grado di [invitare gli Utenti](https://docs.igenius.ai/italiano/crystal-console/utenti/invita-gli-utenti-su-crystal/invita-gli-utenti-tramite-identity-provider) da Google Workspace e *abilitare l'accesso con le credenziali Google per loro* (e di [creare nuovi Gruppi](https://docs.igenius.ai/italiano/crystal-console/utenti/gruppi) più facilmente).

***
