- Registrar aplicativos na Google Cloud Platform e/ou no portal do Azure.
- Gerar credenciais para esses aplicativos (Client ID e Client secret).
- Enviar as credenciais geradas para o Consul.
Registrando o aplicativo no Google
Criando um projeto no Google Cloud Platform
- Acesse a página de criação de novo projeto no Google Cloud Platform.
- Informe um nome para o seu projeto e clique em Create.

- Aguarde até receber uma notificação informando que o seu projeto foi criado.

Configurando o aplicativo
- Acesse o Console do Google Cloud e selecione o projeto desejado.

- No menu à esquerda da tela, selecione APIs & Services > OAuth consent screen.

- Selecione o tipo de usuário External e clique em Create.
- Especifique um nome para o seu aplicativo. Na lista suspensa do campo User support email, selecione o seu endereço do Gmail.

- Especifique o e-mail do desenvolvedor na seção Developer contact information na parte inferior da página e clique em Save and continue.

- Clique em Add or remove scopes. Isso abrirá a caixa de diálogo Update selected scopes à direita.
- Copie e cole o seguinte texto no campo Manually add scopes na parte inferior da caixa de diálogo e clique em Add to table:
Você também pode selecionar os escopos manualmente. Os seguintes escopos precisam ser selecionados:
openidhttps://mail.google.com/../auth2/userinfo.email../auth2/userinfo.profile
- Clique em Update. Isso fechará a caixa de diálogo Update selected scopes e exibirá os escopos selecionados.

- Clique em Save and continue na parte inferior da tela.
- Clique em Save and continue para ignorar as configurações da página Test users e navegar para a página Summary.
Criando credenciais da conta
- Selecione Credentials no menu no lado esquerdo da tela.
- Clique em + Create credentials e selecione OAuth client ID.

- Selecione o tipo Web application.

- Na seção Authorized redirect URIs, selecione + Add URI.

- No campo que será exibido, especifique a URI de redirecionamento:

- Clique em Create.

Publicação e verificação

https://mail.google.com/ permite que o aplicativo acesse dados confidenciais do usuário, por isso será exibida uma mensagem informando que o aplicativo precisa ser verificado.
Para verificar o aplicativo, você precisará fornecer:
- Um link oficial para a política de privacidade do aplicativo
- Um vídeo no YouTube demonstrando o objetivo declarado de obtenção de dados de usuários do Google usando o aplicativo
- Um texto endereçado ao Google com uma descrição dos motivos pelos quais você precisa de acesso a dados confidenciais do usuário
- Uma lista completa de todos os seus domínios verificados no Google Search Console

Antes que o aplicativo seja verificado, apenas 100 usuários poderão utilizá-lo. O contador de usuários está localizado na parte inferior da seção OAuth consent screen e não pode ser reiniciado durante a vigência do projeto.

Registrando o Aplicativo no Microsoft Azure
Registrando o aplicativo
- Vá para a página App registrations.
- Clique em New registration.
- Especifique um nome para seu aplicativo e selecione os tipos de conta com suporte.

Se o tipo Multitenant for selecionado para o aplicativo, ele ficará disponível para usuários em qualquer locatário do Azure AD. Esses aplicativos precisam ser verificados, o que está disponível somente para participantes da Microsoft Partner Network. Se você não for participante, selecione Single tenant, o que tornará seu aplicativo disponível apenas para usuários em seu próprio locatário do Azure AD.
- Na seção Redirect URI, selecione a plataforma Web e especifique a URI de redirecionamento:

- Clique em Register.
Configurando permissões do aplicativo
- Vá até a guia API permissions.

- Clique em Add permission.
- Na caixa de diálogo que for aberta, selecione a seção Microsoft Graph.

- Selecione Delegated permissions.

- Adicione as seguintes permissões:
emailIMAP.AccessAsUser.Alloffline_accessopenidprofile
- Clique em Add permissions. A caixa de diálogo será fechada e as permissões selecionadas serão exibidas.
Criando segredos de cliente
- Navegue até a guia Authentication.

- Na seção Implicit grant and hybrid flows, marque ID tokens (used for implicit and hybrid flows).

- Clique em Save na parte superior da tela.
- Navegue até a guia Certificates & secrets e clique em New client secret.

- Na caixa de diálogo que será aberta, especifique um nome para o segredo de cliente e uma data de expiração.
A data máxima de expiração é de 24 meses.
- Clique em Add. Isso fechará a caixa de diálogo e exibirá informações sobre o novo segredo de cliente.


Verificando o aplicativo
- Acesse a guia Branding & properties.

- Verifique se o domínio está especificado no campo Publisher domain. Se necessário, configure seu domínio clicando em Configure a domain.

O ícone de aviso exibido ao lado do nome de domínio significa que um aplicativo com o domínio especificado não pode ser verificado. Clique em Update domain para especificar um domínio válido diferente relacionado ao locatário do Azure Active Directory. Como alternativa, verifique um novo domínio.
- Na seção Publisher verification, informe seu ID MPN e clique em Verify and save.
Se você não tiver as permissões necessárias para adicionar um ID MPN, verifique se todos os requisitos de verificação do publicador foram atendidos.
Passando credenciais para o Consul
Antes de iniciar a configuração, verifique se a ferramenta de linha de comando kubectl está instalada e se você está conectado ao cluster Kubernetes.
- Obtenha acesso à interface web do Consul executando o seguinte comando:
http://localhost:8500/ui/dc1/kv/secret/.
- Na guia Key/Value que é aberta, selecione o escopo de implantação apropriado do Vantage. Em seguida, selecione o projeto vantage.

- Selecione o serviço tokenmanagement.

- Navegue até a seção oAuthClientConfiguration.

- Selecione o serviço para o qual você deseja especificar os dados do usuário (google ou microsoft).

- Selecione a chave clientId.
- Copie e cole o valor do Client ID que você salvou anteriormente no campo de entrada e clique em Save.

- Repita as etapas 6 e 7 para a chave clientSecret.
- Reinicie o serviço tokenmanagement executando o seguinte comando:
Atualizando o Client secret
Atualizando o Client Secret no Google
- Acesse o Google Cloud Console e selecione o projeto apropriado.
- No menu à esquerda, selecione APIs & Services > Credentials.
- Na seção OAuth 2.0 Client IDs, selecione o identificador usado para autenticar a conexão com o servidor IMAP.
- Clique em Reset secret.

- Clique em Reset na caixa de diálogo pop-up. Isso atualizará o valor do Client secret e revogará seu valor anterior.
- Baixe o arquivo JSON que contém as credenciais. Como alternativa, copie o valor do Client secret no lado direito da tela.

Atualizando o Client Secret no Microsoft Azure
- Acesse a página App registrations e selecione o aplicativo usado para autenticação por meio do servidor IMAP.

- Acesse a guia Certificates & secrets e clique em New client secret.
- Na caixa de diálogo que será aberta, especifique um nome para o client secret e sua data de expiração.
- Clique em Add. Isso fechará a caixa de diálogo e exibirá as informações sobre o novo client secret. É importante que você copie e salve o Value, pois não poderá acessá-lo novamente depois de fechar a página.
- Se o client secret atual ainda não tiver expirado, você poderá excluí-lo para garantir que apenas o novo client secret seja usado para identificar o cliente.
