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

# Integración con Google (SSO)

### Crear una nueva aplicación OAuth para Zylon

Para habilitar el inicio de sesión único (SSO) de Google en Zylon, necesitas crear una aplicación OAuth 2.0 en la Consola de Google Cloud.

Accede a la [Consola de Google Cloud](https://console.cloud.google.com/).

<Note>
  Es posible que necesites crear un nuevo proyecto de Google para Zylon si aún no tienes uno.

  <img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/1-create-project.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=b8349c3a49d3772c22489faffbc20c3e" alt="create-project" width="1440" height="830" data-path="images/operator-manual/openid-images/google/1-create-project.png" />
</Note>

Ve a la [sección de Autenticación de Google](https://console.cloud.google.com/auth/) para crear la aplicación.

<img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/2-create-app.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=d8d06ceb592e7785c1a38e1daf22497e" alt="create-oauth-app" width="1404" height="1128" data-path="images/operator-manual/openid-images/google/2-create-app.png" />

<img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/3-configure-audience.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=02b51e86cd7852250426b92dbb70edb1" alt="oauth-config" width="1312" height="1018" data-path="images/operator-manual/openid-images/google/3-configure-audience.png" />

En la configuración de audiencia, establécela como **interna** para que solo los usuarios de tu organización puedan iniciar sesión; de lo contrario, tendrás que pasar por el proceso de verificación de Google.

### Configurar el cliente OAuth

A continuación, configura el cliente OAuth.

<img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/4-create-oauth-client.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=257cd8f21779047a3abeb6beac5ee2df" alt="oauth-client-id" width="2986" height="968" data-path="images/operator-manual/openid-images/google/4-create-oauth-client.png" />

Asegúrate de que se:

* El tipo de aplicación está configurado como **Aplicación web**.
* Los orígenes de JavaScript permitidos están configurados como `https://zylon.company.com`, sustituyendo `zylon.company.com` por el dominio donde está alojado Zylon (es el mismo dominio que el host en el archivo de configuración ubicado en `/etc/zylon/zylon-conf.yaml`).
* El URI de redirección autorizado está configurado como `https://zylon.company.com/api/v1/auth/google/callback`; al igual que antes, sustituye `zylon.company.com` por el dominio donde está alojado Zylon.
* Aplica los cambios y guarda el `Client ID` y el `Client Secret`, que se utilizarán más adelante en el archivo de configuración de Zylon.

Selecciona **Aplicación web** como tipo de aplicación:

<img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/5-select-web-app-as-type.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=09a8be586c3cda8cdbcf86123e6331c7" alt="oauth-web-app" width="1130" height="1088" data-path="images/operator-manual/openid-images/google/5-select-web-app-as-type.png" />

Configura el URI de redirección autorizado como se ha mencionado anteriormente; comprueba que el dominio es correcto
y que el sufijo es `/api/v1/auth/google/callback`:

<img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/6-configure-origin-and-callback.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=d6d3f71045ea79ffde86aaa514f4e0fa" alt="oauth-redirect-uri" width="1204" height="1122" data-path="images/operator-manual/openid-images/google/6-configure-origin-and-callback.png" />

Crea el cliente OAuth y guarda el `Client ID` y el `Client Secret`:

<img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/7-copy-oauth-data.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=ae02e6bff9184eedfb9fb0e86ddea25b" alt="oauth-client-created" width="998" height="1276" data-path="images/operator-manual/openid-images/google/7-copy-oauth-data.png" />

### Scopes de openid

Ve a la [sección de acceso a datos/scopes](https://console.cloud.google.com/auth/scopes) y añade los siguientes scopes a tu aplicación:

* auth/userinfo.email (para obtener el correo electrónico del usuario)
* auth/userinfo.profile (para obtener el nombre del usuario y su foto de perfil)
* openid (para autenticar a los usuarios con OpenID Connect)

<img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/8-add-scopes.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=63ffd81dd2ce8bcd9ed5746f977649b6" alt="oauth-scopes" width="2988" height="1634" data-path="images/operator-manual/openid-images/google/8-add-scopes.png" />

<img src="https://mintcdn.com/zylon/BXrLYrh44RWGgEbL/images/operator-manual/openid-images/google/9-add-scopes-output.png?fit=max&auto=format&n=BXrLYrh44RWGgEbL&q=85&s=0728e2b6f483cfb2927ed476b2c4b076" alt="oauth-scopes-added" width="2164" height="1540" data-path="images/operator-manual/openid-images/google/9-add-scopes-output.png" />

### Actualiza la configuración a Zylon

Añade la siguiente configuración a `/etc/zylon/zylon-conf.yaml`,
sustituyendo los valores de `clientId` y `clientSecret` por los obtenidos en los pasos anteriores
y `redirectUri` por el dominio correcto donde está alojado Zylon.

<Warn>
  El archivo de configuración es un archivo `.yaml`, por lo que la indentación, los espacios, los puntos y coma y las
  comillas dobles son relevantes.
</Warn>

```yaml theme={null}
auth:
  google:
    enabled: true
    clientId: "1234567890-abcde.apps.googleusercontent.com"
    clientSecret: "GOCSPX-xxxxxxxxxxxxxxxxxxxxxxxx"
    redirectUri: "https://zylon.company.com/api/v1/auth/google/callback"
```

Ejecuta el siguiente comando para actualizar la configuración:

```yaml theme={null}
sudo zylon-cli sync
```

Ahora deberías ver la opción de Google SSO al iniciar sesión.

<Tip>
  En caso de que no veas el botón de Google para iniciar sesión, borra la caché del navegador.
</Tip>
