- Registrar aplicaciones en Google Cloud Platform y/o en el portal de Azure.
- Generar credenciales de cuenta para estas aplicaciones (Client ID y Client secret).
- Proporcionar las credenciales generadas a Consul.
Registro de la aplicación en Google
Creación de un proyecto en Google Cloud Platform
- Acceda a la página New Project de Google Cloud Platform.
- Especifique un nombre para su proyecto y haga clic en Create.

- Espere a recibir una notificación que indique que su proyecto se ha creado.

Configuración de la aplicación
- Vaya a Google Cloud Console y seleccione el proyecto correspondiente.

- En el menú de la parte izquierda de la pantalla, seleccione APIs & Services > OAuth consent screen.

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

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

- Haga clic en Add or remove scopes. Esto abrirá el cuadro de diálogo Update selected scopes en el lado derecho.
- Copie y pegue el texto siguiente en el campo Manually add scopes en la parte inferior del cuadro de diálogo y haga clic en Add to table:
También puede seleccionar manualmente los ámbitos. Deben seleccionarse los siguientes ámbitos:
openidhttps://mail.google.com/../auth2/userinfo.email../auth2/userinfo.profile
- Haga clic en Update. Esto cerrará el cuadro de diálogo Update selected scopes y mostrará los ámbitos seleccionados.

- Haga clic en Save and continue en la parte inferior de la pantalla.
- Haga clic en Save and continue para omitir la configuración de la página Test users y navegar a la página Summary.
Creación de credenciales de cuenta
- Seleccione Credentials en el menú del lado izquierdo de la pantalla.
- Haga clic en + Create credentials y seleccione OAuth client ID.

- Seleccione Web application como tipo.

- En la sección Authorized redirect URIs, haga clic en + Add URI.

- En el campo que aparece, especifique el URI de redirección:

- Haga clic en Create.

Publicación y verificación

https://mail.google.com/ permite que la aplicación acceda a datos confidenciales del usuario; por este motivo se mostrará un mensaje indicando que la aplicación debe verificarse.
Para verificar la aplicación, deberá proporcionar:
- Un enlace oficial a la política de privacidad de la aplicación
- Un video de YouTube que muestre el propósito declarado de obtener datos de usuario de Google mediante la aplicación
- Un texto dirigido a Google que contenga una descripción de por qué requiere acceso a datos confidenciales del usuario
- Una lista completa de todos sus dominios verificados en Google Search Console

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

Registro de la aplicación en Microsoft Azure
Registro de la aplicación
- Vaya a la página App registrations.
- Haga clic en New registration.
- Especifique un nombre para su aplicación y seleccione los tipos de cuenta admitidos.

Si se selecciona el tipo Multitenant para la aplicación, estará disponible para usuarios de cualquier inquilino de Azure AD. Dichas aplicaciones deben verificarse, lo cual solo está disponible para participantes de Microsoft Partner Network. Si no es participante, seleccione Single tenant, lo que hará que su aplicación solo esté disponible para usuarios de su propio inquilino de Azure AD.
- En la sección Redirect URI, seleccione la plataforma Web y especifique la URI de redirección:

- Haga clic en Register.
Configuración de los permisos de la aplicación
- Vaya a la pestaña API permissions.

- Haga clic en Add permission.
- En el cuadro de diálogo que se abra, seleccione la sección Microsoft Graph.

- Seleccione Delegated permissions.

- Agregue los siguientes permisos:
emailIMAP.AccessAsUser.Alloffline_accessopenidprofile
- Haga clic en Add permissions. Esto cerrará el cuadro de diálogo y mostrará los permisos seleccionados.
Creación de secretos de cliente
- Acceda a la pestaña Authentication.

- En la sección Implicit grant and hybrid flows, marque ID tokens (used for implicit and hybrid flows).

- Haga clic en Save en la parte superior de la pantalla.
- Acceda a la pestaña Certificates & secrets y haga clic en New client secret.

- En el cuadro de diálogo que se abre, indique un nombre para el secreto de cliente y una fecha de caducidad.
El plazo máximo de validez es de 24 meses.
- Haga clic en Add. Esto cerrará el cuadro de diálogo y mostrará información sobre su nuevo secreto de cliente.


Verifying the Application
- Vaya a la pestaña Branding & properties.

- Compruebe que el dominio esté especificado en el campo Publisher domain. Si es necesario, configure su dominio haciendo clic en Configure a domain.

El icono de advertencia que se muestra junto al nombre de dominio significa que una aplicación con el dominio especificado no se puede verificar. Haga clic en Update domain para especificar un dominio válido diferente relacionado con el inquilino de Azure Active Directory. Como alternativa, verifique un dominio nuevo.
- En la sección Publisher verification, especifique su MPN ID y haga clic en Verify and save.
Si no tiene los permisos necesarios para agregar un MPN ID, compruebe que se cumplan todos los requisitos de verificación del publicador.
Proporcionar credenciales a Consul
Antes de realizar la configuración, verifique que la herramienta de línea de comandos kubectl esté instalada y que esté conectado al clúster de Kubernetes.
- Obtenga acceso a la interfaz web de Consul ejecutando el siguiente comando:
http://localhost:8500/ui/dc1/kv/secret/.
- En la pestaña Key/Value que se abrirá, seleccione el ámbito de implementación de Vantage adecuado. Luego seleccione el proyecto vantage.

- Seleccione el servicio tokenmanagement.

- Vaya a la sección oAuthClientConfiguration.

- Seleccione el servicio para el cual desea especificar los datos de usuario (google o microsoft).

- Seleccione la clave clientId.
- Copie y pegue el valor de Client ID que guardó anteriormente en el campo de entrada y haga clic en Save.

- Repita los pasos 6 y 7 para la clave clientSecret.
- Reinicie el servicio tokenmanagement ejecutando el siguiente comando:
Actualizar el secreto de cliente
Actualizar el Client Secret en Google
- Vaya a la consola de Google Cloud y seleccione el proyecto correspondiente.
- En el menú de la izquierda, seleccione APIs & Services > Credentials.
- En la sección OAuth 2.0 Client IDs, seleccione el identificador utilizado para autenticarse al conectarse al servidor IMAP.
- Haga clic en Reset secret.

- Haga clic en Reset en el cuadro de diálogo emergente. Esto actualizará el valor del Client Secret y dejará sin efecto su valor anterior.
- Descargue el archivo JSON que contiene las credenciales. Como alternativa, copie el valor del Client Secret de la parte derecha de la pantalla.

Actualizar el secreto de cliente en Microsoft Azure
- Vaya a la página App registrations y seleccione la aplicación utilizada para la autenticación mediante el servidor IMAP.

- Vaya a la pestaña Certificates & secrets y haga clic en New client secret.
- En el cuadro de diálogo que se abrirá, especifique un nombre para el secreto de cliente y su fecha de expiración.
- 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á acceder a él de nuevo una vez que cierre la página.
- Si el secreto de cliente actual aún no ha expirado, puede eliminarlo para que solo se pueda usar el nuevo secreto de cliente para identificar la aplicación cliente.
