Email Autenticação OAuth2: mudanças entre as edições
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...' |
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 == | ||
[[Arquivo:Registro de Aplicativo Mult-Tenant.png|centro]] | |||
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
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.


3° Passo - Criar aplicativo

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

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


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


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


4° Passo - Obter ObjectId para os comandos do PowerShell

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
