01. DADOS GERAIS
Produto: | TOTVS Varejo Supermercados
|
---|---|
Linha de Produto: | Linha RMS |
Segmento: | Varejo |
Módulo: | Conector NFE |
Função: | Recebimento de Email |
País: | Brasil |
Ticket: | |
Requisito/Story/Issue (informe o requisito relacionado) : | MTRS-7506 |
02. SITUAÇÃO/REQUISITO
Necessário melhoria na tecnologia de acesso a emails visando maior segurança e controle de dados
03. SOLUÇÃO
Foi necessário alterar a tecnologia de .Net Framework 3.5 para 4.8 e o tipo de comunicação de POP para IMAP, sendo assim para a maioria dos provedores, incluindo a Microsoft que será utilizado aqui, terão a porta de conexão alterada sendo o padrão 993
Será utilizado o Azure em inglês para a documentação
- Azure
-
- Ir até App Registrations
- Clicar em New registration
- Escolher um nome (recomendamos como ConectorNFE para ser fácil de achar posteriormente) e colocar como Multitenant
- Copie o Application(cliente) ID e o Directory (tenant) ID da tela aberta para ser usado mais tarde no processo:
- Vá em Certificates & Secrets e clique em New client secret, selecione a duração e um nome
- Ao clicar em Add ele irá criar um novo sergredo e este valor só poderá ser copiado e obtido neste momento então é crucial que seja já copiado neste momento e recomendamos armazená-lo por segurança.
Ao tentar voltar para a tela futuramente o valor ficará da seguinte forma e não poderá ser copiado: - Agora vamos em API permissions e adicionar uma permissão clicando em Add a permission e colocar as seguintes permissões:
- Clicar em Grant admin consente, para esta etapa será necessário estar logado como a conta admin do Azure
- Rodar o seguinte código:
Importante verificar que a conta a ser logada nos Connects deve ser a conta do admnistrator do Azure[System.Net.ServicePointManager]::SecurityProtocol = 'TLS12'
Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned
Install-Module ExchangeOnlineManagement
Install-Module -Name AzureAD
Import-module AzureAD
Import-module ExchangeOnlineManagement
$Tenant = <Directory (tenant) ID>
Connect-AzureAd -Tenant $Tenant
Connect-ExchangeOnline -Organization $Tenant
$App = Get-AzureADServicePrincipal -SearchString <Nome Aplicativo>
New-ServicePrincipal -AppId $App.AppId -ServiceId $App.ObjectId -DisplayName "Conector IMAP"
Add-MailboxPermission -Identity <Email a ser utilizado> -User $App.ObjectId -AccessRights FullAccess
Imagem exemplo:
-
- Conector
- No ConectorNFE -> Configuração -> Parâmetros preencher os seguintes campos:
O campo scopo é recomendado deixar como da imagem
O campo Nome da Pasta no Email é a pasta para o qual será observado os emails, caso deseje a pasta principal basta colocar Inbox
Cliente(Aplicativo) ID = Application (client) ID
Diretório(Locatário) ID = Directory (tenant) ID - Ativar a configuração de banco nos parâmetros de banco setando o parâmetro NFEUSAIMAP como S
- No ConectorNFE -> Configuração -> Parâmetros preencher os seguintes campos:
Obs: Se o conector estiver com problemas na primeira abertura após esta implantação é possível que seja pela falta das tags no arquivo Config.xml sendo assim favor inserir as seguintes tags vazias seguinto a estrutura do arquivo:
<nfeImapClientId></nfeImapClientId>
<nfeImapScope></nfeImapScope>
<nfeImapSecVal></nfeImapSecVal>
<nfeImapTenantId></nfeImapTenantId>
<nfeImapFolderName></nfeImapFolderName>