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

# OAuth 2.0 para IMAP

> Configure OAuth 2.0 para la importación de correo electrónico IMAP en ABBYY Vantage autoalojado registrando aplicaciones en Google Cloud y Azure y almacenando las credenciales en Consul.

De forma predeterminada, los usuarios que configuran la importación de documentos desde un servicio de correo electrónico mediante una Actividad de entrada en una Habilidad de proceso solo tienen acceso a la autenticación básica del servidor IMAP. Para habilitar la autenticación de los servicios de correo electrónico de Google y Microsoft mediante el protocolo OAuth 2.0, debe seguir estos pasos:

1. Registrar aplicaciones en Google Cloud Platform y/o en Azure portal.
2. Generar credenciales de cuenta para estas aplicaciones (Client ID y secreto de cliente).
3. Pasar las credenciales generadas a Consul.

Estos pasos pueden realizarse tanto antes como después de instalar Vantage.

<div id="registering-the-application-in-google">
  ## Registrar la Aplicación en Google
</div>

Para crear una aplicación, se requiere una cuenta de Google.

<div id="creating-a-project-on-the-google-cloud-platform">
  ### Crear un proyecto en Google Cloud Platform
</div>

1. Vaya a la página **Nuevo proyecto** de Google Cloud Platform.
2. Especifique un nombre para su proyecto y haga clic en **Crear**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-009.png" alt="Página Nuevo proyecto de Google Cloud Platform que muestra el campo del nombre del proyecto" style={{ width:"55%" }} />

3. Espere a que aparezca una notificación indicando que su proyecto se ha creado.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-010.png" alt="Notificación de Google Cloud Platform que muestra la confirmación de creación del proyecto" style={{ width:"46%" }} />

<div id="setting-up-the-application">
  ### Configuración de la aplicación
</div>

1. Vaya a Google Cloud Console y seleccione el proyecto adecuado.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-011.png" alt="Lista desplegable del selector de proyectos de Google Cloud Console" style={{ width:"51%" }} />

2. En el menú del lado izquierdo de la pantalla, seleccione **APIs & Services > OAuth consent screen**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-012.png" alt="Menú de Google Cloud Console que muestra APIs & Services con la opción OAuth consent screen" style={{ width:"53%" }} />

3. Seleccione el tipo de usuario **External** y haga clic en **Create**.
4. Especifique un nombre para la aplicación. En el campo de lista desplegable **User support email**, seleccione su dirección de Gmail.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-013.png" alt="Formulario App information de OAuth consent screen con los campos de nombre de la aplicación y correo electrónico de soporte para el usuario" style={{ width:"61%" }} />

5. Especifique el correo electrónico del desarrollador en la sección **Developer contact information**, en la parte inferior de la página, y haga clic en **Save and continue**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-014.png" alt="Sección Developer contact information con el campo de correo electrónico" style={{ width:"62%" }} />

6. Haga clic en **Add or remove scopes**. Se abrirá el cuadro de diálogo **Update selected scopes** a la derecha.
7. Copie y pegue el siguiente texto en el campo **Manually add scopes**, en la parte inferior del cuadro de diálogo, y haga clic en **Add to table**:

```
openid https://www.googleapis.com/auth2/userinfo.email https://www.googleapis.com/auth2/userinfo.profile https://mail.google.com/
```

<Note>
  También puede seleccionar los scopes manualmente. Debe seleccionar los siguientes scopes:

  * `openid`
  * `https://mail.google.com/`
  * `../auth2/userinfo.email`
  * `../auth2/userinfo.profile`
</Note>

8. Haga clic en **Update**. Esto cerrará el cuadro de diálogo **Update selected scopes** y mostrará los scopes seleccionados.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-015.png" alt="Cuadro de diálogo Update selected scopes que muestra los scopes de OAuth necesarios" />

9. Haga clic en **Save and continue** en la parte inferior de la pantalla.
10. Haga clic en **Save and continue** para omitir la configuración de la página **Test users** e ir a la página **Summary**.

En la página **Summary**, verá información sobre la aplicación, las direcciones de correo electrónico y los permisos configurados.

<div id="creating-account-credentials">
  ### Crear credenciales de la cuenta
</div>

1. Selecciona **Credentials** en el menú de la izquierda de la pantalla.
2. Haz clic en **+ Create credentials** y selecciona **OAuth client ID**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-016.png" alt="Menú desplegable Create credentials con la opción OAuth client ID" style={{ width:"61%" }} />

3. Selecciona el tipo **Web application**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-017.png" alt="Formulario Create OAuth client ID con la lista desplegable de tipo de aplicación mostrando Web application" style={{ width:"60%" }} />

4. En la sección **Authorized redirect URIs**, selecciona **+ Add URI**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-018.png" alt="Sección Authorized redirect URIs con el botón Add URI" style={{ width:"47%" }} />

5. En el campo que aparecerá, especifica la URI de redirección:

```
https://<Vantage host name>/connectors-tokens-callback.html
```

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-019.png" alt="Campo Redirect URI con la URL de callback de Vantage y el botón CREATE" style={{ width:"60%" }} />

6. Haga clic en **Create**.

El cuadro de diálogo emergente que aparecerá contendrá los valores de **Client ID** y **secreto de cliente**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-020.png" alt="Cuadro de diálogo de cliente OAuth creado que muestra los valores de Client ID y secreto de cliente" style={{ width:"66%" }} />

Estos datos son necesarios para configurar el servicio tokenmanagement en Vantage. Puede guardarlos de inmediato o copiarlos más tarde; para ello, vaya a **APIs & Services > Credentials** y seleccione el identificador del cliente OAuth 2.0 que creó.

<div id="publishing-and-verification">
  ### Publicación y verificación
</div>

El estado de publicación de la aplicación se muestra en la sección **APIs & Services > OAuth consent screen**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-021.png" alt="Pantalla de consentimiento de OAuth que muestra el estado de publicación como Testing con el botón Publish App" style={{ width:"27%" }} />

Las aplicaciones con estado **Testing** solo están disponibles para los usuarios que se hayan añadido a la lista de testers. Solo al publicar una aplicación esta queda disponible para cualquier usuario con una cuenta de Google.

Haz clic en **Publish app**. El alcance `https://mail.google.com/` permite que la aplicación acceda a datos confidenciales del usuario, por lo que se mostrará un mensaje indicando que la aplicación debe verificarse.

Para verificar la aplicación, deberás proporcionar:

* Un enlace oficial a la política de privacidad de la aplicación
* Un vídeo de YouTube que demuestre el propósito declarado de obtener datos de usuarios de Google mediante la aplicación
* Un texto dirigido a Google con una descripción de por qué necesitas acceso a datos confidenciales del usuario
* Una lista completa de todos tus dominios verificados en Google Search Console

Haz clic en **Confirm**. El estado de tu aplicación cambiará a **In Production**.

También aparecerá el botón **Prepare for verification**, que te permitirá proporcionar todos los datos necesarios para la verificación.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-022.png" alt="Pantalla de consentimiento de OAuth que muestra el estado In Production con una advertencia de verificación y el botón Prepare for Verification" style={{ width:"55%" }} />

<Note>
  Antes de que se verifique tu aplicación, solo 100 usuarios podrán usarla. El contador de usuarios se encuentra en la parte inferior de la sección OAuth consent screen y no se puede restablecer durante la vida útil del proyecto.
</Note>

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-023.png" alt="Límite de usuarios de OAuth que muestra 0 usuarios de un límite de 100 usuarios" style={{ width:"61%" }} />

<div id="registering-the-application-in-microsoft-azure">
  ## Registrar la aplicación en Microsoft Azure
</div>

Para crear una aplicación, se requiere un tenant de Azure Active Directory con permisos para registrar y editar aplicaciones.

Puede cambiar al directorio correcto en la página **Portal settings | Directories + subscriptions**.

<div id="registering-the-application">
  ### Registrar la aplicación
</div>

1. Vaya a la página **App registrations**.
2. Haga clic en **New registration**.
3. Especifique un nombre para la aplicación y seleccione los tipos de cuenta admitidos.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-024.png" alt="Formulario de Azure para registrar una aplicación que muestra el campo Name y las opciones Supported account types" />

<Note>
  Si se selecciona el tipo **Multitenant** para la aplicación, estará disponible para usuarios de cualquier tenant de Azure AD. Estas aplicaciones deben verificarse, y eso solo está disponible para los miembros de Microsoft Partner Network. Si no es miembro, seleccione **Single tenant**, para que la aplicación esté disponible solo para usuarios de su propio tenant de Azure AD.
</Note>

4. En la sección **Redirect URI**, seleccione la plataforma **Web** y especifique el URI de redirección:

```
https://<Vantage host name>/connectors-tokens-callback.html
```

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-025.png" alt="Sección Redirect URI de Azure con la plataforma web seleccionada" style={{ width:"77%" }} />

5. Haz clic en **Register**.

<div id="setting-up-application-permissions">
  ### Configuración de permisos de la aplicación
</div>

1. Vaya a la pestaña **API permissions**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-026.png" alt="Barra lateral del Azure portal con la opción de menú API permissions resaltada" style={{ width:"73%" }} />

2. Haga clic en **Add permission**.
3. En el cuadro de diálogo que se abre, seleccione la sección **Microsoft Graph**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-027.png" alt="Cuadro de diálogo para solicitar permisos de API con la opción Microsoft Graph resaltada" style={{ width:"69%" }} />

4. Seleccione **Delegated permissions**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-028.png" alt="Cuadro de diálogo de permisos de Microsoft Graph con la opción Delegated permissions seleccionada" style={{ width:"73%" }} />

5. Agregue los siguientes permisos:
   * `email`
   * `IMAP.AccessAsUser.All`
   * `offline_access`
   * `openid`
   * `profile`
6. Haga clic en **Add permissions**. Esto cerrará el cuadro de diálogo y mostrará los permisos seleccionados.

<div id="creating-client-secrets">
  ### Creación de secretos de cliente
</div>

1. Vaya a la pestaña **Autenticación**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-029.png" alt="Barra lateral de Azure portal con la opción de menú Authentication resaltada" />

2. En la sección **Concesión implícita y flujos híbridos**, marque **Tokens de ID (usados para flujos implícitos e híbridos)**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-030.png" alt="Sección Concesión implícita y flujos híbridos con la casilla Tokens de ID" />

3. Haga clic en **Guardar** en la parte superior de la pantalla.
4. Vaya a la pestaña **Certificados y secretos** y haga clic en **Nuevo secreto de cliente**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-031.png" alt="Pestaña Certificados y secretos con el botón Nuevo secreto de cliente" />

5. En el cuadro de diálogo que se abrirá, especifique un nombre para el secreto de cliente y una fecha de expiración.

<Note>
  La fecha de expiración máxima es de 24 meses.
</Note>

6. Haga clic en **Agregar**. Esto cerrará el cuadro de diálogo y mostrará información sobre su nuevo secreto de cliente.

<Warning>
  Es importante que copie y guarde el **Value**, ya que no podrá volver a acceder a él una vez que cierre la página. Este valor es necesario al configurar el servicio tokenmanagement en Vantage.
</Warning>

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-032.png" alt="Lista de secretos de cliente con la columna Value del secreto resaltada" />

También necesitará el identificador del cliente, que puede copiar del campo **ID de la aplicación (cliente)** en la pestaña **Información general**. El icono de copia aparecerá cuando pase el cursor sobre el valor del identificador.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-033.png" alt="Información general de la aplicación de Azure con el campo ID de la aplicación (cliente) resaltado" />

<div id="verifying-the-application">
  ### Verificación de la aplicación
</div>

Para que la aplicación esté disponible para los usuarios de cualquier tenant de Azure AD, es necesario verificarla. La verificación no es necesaria si se usan cuentas de un único tenant de Azure AD.

Solo los participantes de Microsoft Partner Network pueden completar la verificación.

1. Vaya a la pestaña **Branding & properties**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-034.png" alt="Barra lateral de Azure portal con la opción de menú Branding & properties resaltada" />

2. Verifique que el dominio esté especificado en el campo **Publisher domain**. Si es necesario, configure el dominio haciendo clic en **Configure a domain**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-035.png" alt="Página de Azure Branding & properties que muestra el campo Publisher domain con la opción Update domain" style={{ width:"72%" }} />

<Note>
  El icono de advertencia que se muestra junto al nombre de dominio significa que no se puede verificar una aplicación con el dominio especificado. Haga clic en **Update domain** para especificar otro dominio válido relacionado con el tenant de Azure Active Directory. Como alternativa, verifique un dominio nuevo.
</Note>

3. En la sección **Publisher verification**, especifique su ID de MPN y haga clic en **Verify and save**.

<Note>
  Si no tiene los permisos necesarios para agregar un ID de MPN, verifique que se cumplan todos los requisitos de verificación del publicador.
</Note>

Una vez completada correctamente la verificación, se mostrará el icono correspondiente junto al campo **Publisher display name**.

<div id="passing-credentials-to-consul">
  ## Introducción de credenciales en Consul
</div>

Si Vantage ya está instalado, debe usar Consul para introducir manualmente las credenciales de la cuenta generadas para la autenticación del servicio de correo electrónico de Microsoft y/o Google.

Las funciones específicas del protocolo OAuth 2.0 se describen en el servicio TokenManagement.

<Note>
  Antes de realizar la configuración, compruebe que la herramienta de línea de comandos kubectl esté instalada y que esté conectado al clúster de Kubernetes.
</Note>

1. Obtenga acceso a la interfaz web de Consul ejecutando el siguiente comando:

```bash theme={null}
kubectl port-forward -n abbyy-infrastructure service/consul-ui 8500:80
```

Luego, vaya a `http://localhost:8500/ui/dc1/kv/secret/`.

2. En la pestaña **Key/Value** que se abrirá, seleccione el ámbito de implementación de Vantage correspondiente. Luego, seleccione el proyecto **vantage**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-036.png" alt="Proyecto vantage de Consul que muestra la lista de servicios con tokenmanagement resaltado" style={{ width:"65%" }} />

3. Seleccione el servicio **tokenmanagement**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-037.png" alt="Servicio tokenmanagement de Consul que muestra la sección oAuthClientConfiguration" style={{ width:"68%" }} />

4. Vaya a la sección **oAuthClientConfiguration**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-038.png" alt="oAuthClientConfiguration de Consul que muestra las opciones google y microsoft" style={{ width:"67%" }} />

5. Seleccione el servicio para el que desea especificar los datos de usuario (**google** o **microsoft**).

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-039.png" alt="Sección oAuthClientConfiguration de Consul que muestra el servicio google con las claves clientId y clientSecret" style={{ width:"66%" }} />

6. Seleccione la clave **clientId**.
7. Copie y pegue en el campo de entrada el valor de Client ID que guardó antes y haga clic en **Save**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-040.png" alt="Editor del valor clientId de Consul con el botón Save" style={{ width:"65%" }} />

8. Repita los pasos 6 y 7 para la clave **clientSecret**.

Si es necesario, repita los pasos del 5 al 8 para otro servicio de correo electrónico.

9. Reinicie el servicio **tokenmanagement** ejecutando el siguiente comando:

```bash theme={null}
kubectl -n abbyy-vantage rollout restart $(kubectl -n abbyy-vantage get deployments -l app.kubernetes.io/component=tokenmanagement -o name)
```

<div id="updating-client-secret">
  ## Actualización del secreto de cliente
</div>

El valor del secreto de cliente se utiliza para identificar al cliente en el servidor y constituye información confidencial. Por motivos de seguridad, este dato debe actualizarse periódicamente. Algunos servicios, como Azure Active Directory, limitan el período de validez de este tipo de datos.

Una vez creado un nuevo secreto de cliente, también debe actualizarse el valor de la clave de Consul correspondiente.

<Warning>
  Una vez actualizado el secreto de cliente, los usuarios deberán configurar desde cero las conexiones a su servicio de correo electrónico en la Actividad de entrada del Skill de documento. De lo contrario, Vantage no podrá conectarse al buzón ni importar correos electrónicos desde él.
</Warning>

<div id="updating-the-client-secret-in-google">
  ### Actualización del secreto de cliente en Google
</div>

1. Vaya a Google Cloud Console y seleccione el proyecto correspondiente.
2. En el menú de la izquierda, seleccione **APIs & Services > Credentials**.
3. En la sección **OAuth 2.0 Client IDs**, seleccione el identificador que se usa para autenticarse al conectarse al servidor IMAP.
4. Haga clic en **Reset secret**.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-041.png" alt="Detalles del cliente OAuth de Google que muestran el botón Reset Secret" style={{ width:"75%" }} />

5. Haga clic en **Reset** en el cuadro de diálogo emergente. Esto actualizará el valor del secreto de cliente y recuperará su valor anterior.
6. Descargue el archivo JSON que contiene las credenciales. Como alternativa, copie el valor del secreto de cliente desde el lado derecho de la pantalla.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-042.png" alt="Detalles del cliente OAuth de Google que muestran el botón Download JSON y el campo Client secret" />

<div id="updating-the-client-secret-in-microsoft-azure">
  ### Actualización del secreto de cliente en Microsoft Azure
</div>

1. Vaya a la página **App registrations** y seleccione la aplicación utilizada para la autenticación mediante el servidor IMAP.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/abbyy/images/vantage/self-hosted/misc-p01-043.png" alt="Página de App registrations de Azure que muestra la lista Owned applications con Example App" />

2. Vaya a la pestaña **certificados y secretos** y haga clic en **New client secret**.
3. En el cuadro de diálogo que se abrirá, especifique un nombre para el secreto de cliente y su fecha de vencimiento.
4. Haga clic en **Add**. Esto cerrará el cuadro de diálogo y mostrará información sobre el nuevo secreto de cliente. Es importante que copie y guarde el **Value**, ya que no podrá volver a acceder a él una vez que cierre la página.
5. Si el secreto de cliente actual aún no ha vencido, puede eliminarlo para asegurarse de que solo se utilice el nuevo secreto de cliente para identificar al cliente.

<div id="updating-the-client-secret-in-consul">
  ### Actualizar el secreto de cliente en Consul
</div>

Siga los pasos indicados en [Introducción de credenciales en Consul](#passing-credentials-to-consul), excepto los pasos 6 y 7 (copiar el valor de clientId).
