Email Autenticação OAuth2: mudanças entre as edições

De Base de Conhecimentos da DataPlus Sistemas
Ir para navegação Ir para pesquisar
Vinicius (discussão | contribs)
Criou página com 'Passo a passo de como fazer a configuração para provedores de e-mail que utilizam a autenticação OAuth2. '''Para testar pode-se usar a própria conta com o domínio datap...'
 
Vinicius (discussão | contribs)
Sem resumo de edição
 
(6 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
Passo a passo de como fazer a configuração para provedores de e-mail que utilizam a autenticação OAuth2.
Passo a passo de como fazer a configuração para provedores de e-mail que utilizam a autenticação OAuth2.
Servidor: smtp.office365.com<br>
Criptografia: STARTTLS<br>
Porta: 587


'''Para testar pode-se usar a própria conta com o domínio dataplussistemas.com.br'''
'''Para testar pode-se usar a própria conta com o domínio dataplussistemas.com.br'''
Linha 16: Linha 20:


== 3° Passo - Criar aplicativo ==
== 3° Passo - Criar aplicativo ==
Acesse: [https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade Registro de Aplicativo]
[[Arquivo:Registro de Aplicativo Mult-Tenant.png|centro]]
 
[[Arquivo:E-mail OAuth2 Registro de aplicativo.png|centro|E-mail OAuth2 Registro de aplicativo]]<br>


As credenciais apontadas na imagem serão informadas nas configurações gerais do ERP:
As credenciais apontadas na imagem serão informadas nas configurações gerais do ERP:
Linha 37: Linha 39:


[[Arquivo:E-mail OAuth2 Confirmação Consentimento Usuário.png|centro|E-mail OAuth2 Confirmação Consentimento Usuário]]<br>
[[Arquivo:E-mail OAuth2 Confirmação Consentimento Usuário.png|centro|E-mail OAuth2 Confirmação Consentimento Usuário]]<br>
== 4° Passo - Obter ObjectId para os comandos do PowerShell ==
[https://portal.azure.com/#view/Microsoft_AAD_IAM/StartboardApplicationsMenuBlade/~/AppAppsPreview Aplicativos Empresariais]
[[Arquivo:Email OAuth2 Aplicativo Empresarial Id.png|centro|Email OAuth2 Aplicativo Empresarial Id]]
== 5° Passo - Realizar a liberação dos usuários para envio do e-mail ==
Abra o '''PowerShell''' no modo administrador. Esse processo deve ser realizado pelo administrador do domínio:
1° - '''Install-Module ExchangeOnlineManagement -Force'''<br>
- O comando instala o módulo oficial do PowerShell necessário para administrar o Exchange Online. O parâmetro -Force força a instalação mesmo que o módulo já exista ou esteja desatualizado.
2° - '''Import-Module ExchangeOnlineManagement'''<br>
- O comando carrega esse módulo na sessão atual do PowerShell, tornando os cmdlets do Exchange disponíveis para uso.
3° - '''Connect-ExchangeOnline'''<br>
- O comando inicia a conexão com o ambiente Exchange Online da Microsoft. Ao executá-lo, você será solicitado a informar suas credenciais administrativas.
4° A - '''Set-TransportConfig -SmtpClientAuthenticationDisabled $false''' (Ativação global)<br>
- O comando habilita globalmente o suporte à autenticação SMTP no seu tenant Microsoft 365. Isso permite que os usuários usem login (senha ou OAuth2) para enviar e-mails via SMTP, por exemplo, usando smtp.office365.com.
OU
4° B - '''Set-CASMailbox -Identity "usuario@email.com.br" -SmtpClientAuthenticationDisabled $false''' (Ativação individual)<br>
- O comando ativa explicitamente a autenticação SMTP para esse usuário específico. Isso é útil caso você queira ativar SMTP apenas para alguns usuários, mesmo que a configuração global esteja desativada.
5° - '''Get-ManagementRoleAssignment -Role "Role Management"'''
- O comando verifica se sua conta tem atribuição para o papel “Role Management”, necessário para criar service principals e modificar permissões avançadas.
6° - '''New-ServicePrincipal -AppId <client_id> -ObjectId <object_id>'''<br>
- O comando registra um service principal (aplicativo Azure AD) no Exchange Online, vinculando seu App registrado no Entra ID (Azure AD) ao Exchange. Isso é essencial para que o app possa acessar caixas de correio via OAuth2 (SMTP, IMAP, etc.).
7° - '''Get-ServicePrincipal'''<br>
- O comando lista todos os service principals já registrados no Exchange Online, permitindo verificar se o seu foi criado corretamente.
8° - '''Add-MailboxPermission -Identity "usuario@email.com.br" -User <object_id> -AccessRights FullAccess'''<br>
- O comando concede ao seu app (identificado pelo ObjectId do service principal) acesso completo à caixa de correio do usuário especificado. Isso permite que o app leia ou envie mensagens.
9° - '''Add-RecipientPermission -Identity "usuario@email.com.br" -Trustee <object_id> -AccessRights SendAs'''<br>
- O comando autoriza o app a enviar e-mails como se fosse o próprio usuário (SendAs). Esse passo é obrigatório para que o envio via SMTP OAuth funcione corretamente com o endereço do usuário como remetente. A resposta precisa ser R: A
== 6° Passo - Para empresas que utilizarão o mesmo aplicativo (Multi-Tenant)==
Acessar URL: https://login.microsoftonline.com/common/adminconsent?client_id=<CLIENT_ID_APLICATIVO_DATAPLUS>
- Connect-ExchangeOnline
- New-ServicePrincipal -AppId <CLIENT_ID_APLICATIVO_DATAPLUS> -ObjectId <ID_DO_OBJETO_DO_CLIENTE>
O ID_DO_OBJETO_DO_CLIENTE pode ser obtido por eles usando:
- Get-AzureADServicePrincipal -Filter "appId eq '<CLIENT_ID_APLICATIVO_DATAPLUS>'"
Depois é preciso conceder permissão aos usuários:
- Add-MailboxPermission -Identity "usuario@empresa.com.br" -User <ObjectId_do_app> -AccessRights FullAccess
- Add-RecipientPermission -Identity "usuario@empresa.com.br" -Trustee <ObjectId_do_app> -AccessRights SendAs
== 7° Passo - Configuração no ERP ==
O escopo a ser informado é: https://outlook.office365.com/.default
[[Arquivo:Email OAuth2 Configuração ERP.png|centro|Email OAuth2 Configuração ERP]]

Edição atual tal como às 16h08min de 12 de agosto de 2025

Passo a passo de como fazer a configuração para provedores de e-mail que utilizam a autenticação OAuth2.

Servidor: smtp.office365.com
Criptografia: STARTTLS
Porta: 587

Para testar pode-se usar a própria conta com o domínio dataplussistemas.com.br

1° Passo - Criar conta Outlook para acesso ao Azure

Outlook

2° Passo - Acessar portal de E-mails

Acesse: Gerenciador de E-mail

Nessa etapa é preciso realizar a marcação da Autenticação SMTP para os usuários que irão realizar o envio de e-mails.

E-mail OAuth2 Gerenciador
E-mail OAuth2 Gerenciador



E-mail OAuth2 SMTP Autenticação
E-mail OAuth2 SMTP Autenticação

3° Passo - Criar aplicativo

As credenciais apontadas na imagem serão informadas nas configurações gerais do ERP:

E-mail OAuth2 Credenciais Cliend ID e ID Organização
E-mail OAuth2 Credenciais Cliend ID e ID Organização


É preciso realizar a criação do segredo que é o Client-Secret que será informado no ERP:

E-mail OAuth2 Criação do segredo
E-mail OAuth2 Criação do segredo


E-mail OAuth2 Valor Segredo
E-mail OAuth2 Valor Segredo


Para que tenha o funcionamento adequado é preciso selecionar algumas permissões para a API (Mail.Send e SMTP.SendAsApp)

E-mail OAuth2 Permissões da API
E-mail OAuth2 Permissões da API


E-mail OAuth2 Mail.Send Mail.SendAsApp
E-mail OAuth2 Mail.Send Mail.SendAsApp


Após as permissões terem sido adicionadas, é preciso realizar o consentimento de administrador para elas:

E-mail OAuth2 Consentimento Usuário
E-mail OAuth2 Consentimento Usuário


E-mail OAuth2 Confirmação Consentimento Usuário
E-mail OAuth2 Confirmação Consentimento Usuário


4° Passo - Obter ObjectId para os comandos do PowerShell

Aplicativos Empresariais

Email OAuth2 Aplicativo Empresarial Id
Email OAuth2 Aplicativo Empresarial Id

5° Passo - Realizar a liberação dos usuários para envio do e-mail

Abra o PowerShell no modo administrador. Esse processo deve ser realizado pelo administrador do domínio:

1° - Install-Module ExchangeOnlineManagement -Force

- O comando instala o módulo oficial do PowerShell necessário para administrar o Exchange Online. O parâmetro -Force força a instalação mesmo que o módulo já exista ou esteja desatualizado.

2° - Import-Module ExchangeOnlineManagement

- O comando carrega esse módulo na sessão atual do PowerShell, tornando os cmdlets do Exchange disponíveis para uso.

3° - Connect-ExchangeOnline

- O comando inicia a conexão com o ambiente Exchange Online da Microsoft. Ao executá-lo, você será solicitado a informar suas credenciais administrativas.

4° A - Set-TransportConfig -SmtpClientAuthenticationDisabled $false (Ativação global)

- O comando habilita globalmente o suporte à autenticação SMTP no seu tenant Microsoft 365. Isso permite que os usuários usem login (senha ou OAuth2) para enviar e-mails via SMTP, por exemplo, usando smtp.office365.com.

OU

4° B - Set-CASMailbox -Identity "usuario@email.com.br" -SmtpClientAuthenticationDisabled $false (Ativação individual)

- O comando ativa explicitamente a autenticação SMTP para esse usuário específico. Isso é útil caso você queira ativar SMTP apenas para alguns usuários, mesmo que a configuração global esteja desativada.

5° - Get-ManagementRoleAssignment -Role "Role Management"

- O comando verifica se sua conta tem atribuição para o papel “Role Management”, necessário para criar service principals e modificar permissões avançadas.

6° - New-ServicePrincipal -AppId <client_id> -ObjectId <object_id>

- O comando registra um service principal (aplicativo Azure AD) no Exchange Online, vinculando seu App registrado no Entra ID (Azure AD) ao Exchange. Isso é essencial para que o app possa acessar caixas de correio via OAuth2 (SMTP, IMAP, etc.).

7° - Get-ServicePrincipal

- O comando lista todos os service principals já registrados no Exchange Online, permitindo verificar se o seu foi criado corretamente.

8° - Add-MailboxPermission -Identity "usuario@email.com.br" -User <object_id> -AccessRights FullAccess

- O comando concede ao seu app (identificado pelo ObjectId do service principal) acesso completo à caixa de correio do usuário especificado. Isso permite que o app leia ou envie mensagens.

9° - Add-RecipientPermission -Identity "usuario@email.com.br" -Trustee <object_id> -AccessRights SendAs

- O comando autoriza o app a enviar e-mails como se fosse o próprio usuário (SendAs). Esse passo é obrigatório para que o envio via SMTP OAuth funcione corretamente com o endereço do usuário como remetente. A resposta precisa ser R: A

6° Passo - Para empresas que utilizarão o mesmo aplicativo (Multi-Tenant)

Acessar URL: https://login.microsoftonline.com/common/adminconsent?client_id=<CLIENT_ID_APLICATIVO_DATAPLUS>

- Connect-ExchangeOnline
- New-ServicePrincipal -AppId <CLIENT_ID_APLICATIVO_DATAPLUS> -ObjectId <ID_DO_OBJETO_DO_CLIENTE>

O ID_DO_OBJETO_DO_CLIENTE pode ser obtido por eles usando:

- Get-AzureADServicePrincipal -Filter "appId eq '<CLIENT_ID_APLICATIVO_DATAPLUS>'"

Depois é preciso conceder permissão aos usuários:

- Add-MailboxPermission -Identity "usuario@empresa.com.br" -User <ObjectId_do_app> -AccessRights FullAccess
- Add-RecipientPermission -Identity "usuario@empresa.com.br" -Trustee <ObjectId_do_app> -AccessRights SendAs


7° Passo - Configuração no ERP

O escopo a ser informado é: https://outlook.office365.com/.default

Email OAuth2 Configuração ERP
Email OAuth2 Configuração ERP