Configuração do E-mail Monitorado com Office 365

Neste documento estão detalhadas algumas configurações para a substituição da autenticação básica com o Microsoft Office 365.

Após o bloqueio da autenticação básica aos protocolos IMAP e POP por parte da Microsoft, é necessário configurar a autenticação OAUTH2, que não utiliza mais a senha da conta de e-mail para autenticação.

Para isso é necessário ter acesso administrador no Azure para executar os passos abaixo.

Configurações no Azure

Acessar o Azure AD

Criação do aplicativo

 

Será necessário copiar essas informações, pois serão utilizadas para cadastro no e-mail monitorado.

Adicionar permissão de leitura de e-mail

 

 

Conceder consentimento do administrador para o Aplicativo

Após consentimento do Administrador.

Cadastrar chave do cliente

Período e nome da chave

Copie o esse Valor, pois será utilizado para cadastro no portal e depois não ficará mais disponível para copiar.

Comandos via CloudShell (Powershell)

Agora com os passos acima, é necessário executar os seguintes comandos no CloudShell como Administrador, para vincular o Aplicativo aos usuários e adicionar a permissão de leitura na caixa de e-mail.

Install-Module -Name AzureAD
Install-Module -Name AzureADPreview
Install-Module -Name ExchangeOnlineManagement

Import-Module AzureAD
Import-Module AzureADPreview
Import-module ExchangeOnlineManagement

Connect-AzureAD
Connect-ExchangeOnline

$MyApp = Get-AzADServicePrincipal -SearchString “conexaonfe”

New-ServicePrincipal -AppId $MyApp.AppId -ServiceId $MyApp.Id -DisplayName "conexaonfe" 

Add-MailboxPermission -Identity "<<<<EmailParaLiberar>>>>" -User $MyApp.Id -AccessRights FullAccess

ps. Não esquecer de alterar a conta de e-mail que será vinculada ao Aplicativo.

ps2. Caso seja necessário liberar mais de uma caixa de e-mail, repita o comando Add-MailboxPermission para todos os e-mails que você deseja liberar.

ps3. O comando Add-MailboxPermission só fica disponível após o Connect-ExchangeOnline.

ps4. Se você informou um nome de aplicativo diferente de "conexaonfe", altere os comandos nas linhas $MyApp e New-ServicePrincipal.

Configurações no Portal

Administrar >> E-mails Monitorados

Cadastrar o E-mail monitorado com base nos passos anteriores.

O e-mail(s) deve(m) ser o(s) mesmo(s) cadastrado(s) no comando Add-MailboxPermission.

Ao testar a conectividade é validado somente se as informações acima estão corretas e com elas é possível se autenticar na API do Azure.

Mas posteriormente na leitura da caixa de e-mail pode apresentar acesso negado, caso o comando Add-MailboxPermission não tiver sido executado corretamente ou a liberação for  aplicada para uma conta de e-mail diferente da cadastrada no E-mail Monitorado.

Possíveis problemas de acesso negado na leitura do e-mail

  • Algum comando no powershell não teve efeito ou apresentou erro;
  • Em casos de empresas com mais de um Tenant, pode ter sido aplicadas as permissões em um Tenant diferente da produção;
  • Em Permissões e APIs no Azure não foi adicionado ou liberado consentimento pelo Administrador na permissão de e-mail ImapAccessAsApp;
  • Liberada permissão Add-MailboxPermission para uma conta de e-mail diferente do que foi parametrizado em Emails Monitorados.

Comandos para auxiliar na identificação do problema de autenticação

Preparando o Powershell para execução dos comandos

Install-Module -Name AzureAD
Install-Module -Name AzureADPreview
Install-Module -Name ExchangeOnlineManagement

Import-Module AzureAD
Import-Module AzureADPreview
Import-module ExchangeOnlineManagement

Connect-AzureAD
Connect-ExchangeOnline

Sem os passos acima, alguns comandos podem não funcionar.

Verifique se encontra aplicativo cadastrado no Azure

Se atentar em informar o mesmo nome usado no cadastro.

Get-AzADServicePrincipal -SearchString “conexaonfe”

Exemplo da resposta do comando:

DisplayName Id                                   AppId
----------- --                                   -----
ConexaoNFe  c6327d28-8d1e-4709-83b8-xxxxxxxxxxxx 97aea66f-de78-44cd-b437-xxxxxxxxxxx

Se não apresentar resultados, não está encontrando o Registro de Aplicativo criado.

Verifique o nome cadastrado e se está no Tenant correto.

Sem o Aplicativo, todos os passos posteriores não funcionarão.

Verifique se o ServicePrincipal do Exchange Online foi criado

Comando que retorna todos os Service Principal.

Get-ServicePrincipal -Identity “conexaonfe”

Exemplo da resposta do comando:

DisplayName                              ObjectId                                                                             AppId
-----------                              --------                                                                             -----
conexaonfe             c6327d28-8d1e-4709-83b8-xxxxxxxxxxxx                                                 97aea66f-de78-44cd-b437-2xxxxxxxx

Vai listar conexaonfe caso o comando New-ServicePrincipal foi executado com sucesso.

Verifique a permissão MailboxPermission

Get-MailboxPermission -Identity "<<<<Email cadastrado para monitoramento>>>>"

Exemplo da resposta do comando:

Identity             User                 AccessRights                                                                                                                                           IsInherited Deny
--------             ----                 ------------                                                                                                                                           ----------- ----
FábioGoll            NT AUTHORITY\SELF    {FullAccess, ReadPermission}                                                                                                                           False       False

Caso não encontre, execute novamente o passo a passo dos comando PowerShell.