Configurando Autenticação OAuth do Outlook/Microsoft 365
Este guia irá orientá-lo na criação de um aplicativo Microsoft Azure para autenticação OAuth com Outlook/Microsoft 365. OAuth fornece uma maneira mais segura de acessar sua conta Outlook em comparação com a autenticação tradicional por senha.
Pré-requisitos
- Uma conta Microsoft (pessoal ou Microsoft 365/Office 365)
- Acesso ao Azure Portal
- URL da sua instalação Perfex CRM (para configuração do URI de redirecionamento)
Para organizações Microsoft 365, pode ser necessária aprovação de administrador.
Configuração Passo a Passo
Passo 1: Registrar um Aplicativo no Azure Portal
- Acesse o Azure Portal
- Entre com sua conta Microsoft
- Navegue para "Azure Active Directory" (ou pesquise por ele)
- Clique em "App registrations" no menu à esquerda
- Clique em "+ New registration"
- Preencha os detalhes do aplicativo:
- Name: Insira um nome (por exemplo, "Perfex CRM Mailbox")
- Supported account types: Escolha "Accounts in any organizational directory and personal Microsoft accounts" para máxima compatibilidade
- Redirect URI:
- Platform: Web
- URI:
https://your-domain.com/admin/mailbox/oauth/callback?provider=outlook - Substitua
your-domain.compelo seu domínio real do Perfex CRM
- Clique em "Register"
Passo 2: Configurar Permissões da API
- No registro do seu app, clique em "API permissions" no menu à esquerda
- Clique em "+ Add a permission"
- Selecione "Microsoft Graph"
- Selecione "Delegated permissions"
- Adicione as seguintes permissões:
Mail.Read- Ler e-mail em todas as caixas de correioMail.ReadWrite- Ler e escrever e-mail em todas as caixas de correioMail.Send- Enviar e-mail como o usuáriooffline_access- Manter acesso aos dados que você concedeu (para atualização de token)
- Clique em "Add permissions"
- IMPORTANTE: Clique em "Grant admin consent for [Your Organization]" se você vir este botão
Isso é necessário para contas organizacionais. Requer privilégios de administrador.
Passo 3: Criar Client Secret
- No registro do seu app, clique em "Certificates & secrets" no menu à esquerda
- Clique em "+ New client secret"
- Insira uma descrição (por exemplo, "Perfex Mailbox Secret")
- Escolha um período de expiração: 24 months (recomendado para produção)
- Clique em "Add"
- IMPORTANTE: Copie o Value imediatamente (você não poderá vê-lo novamente) - este é seu Client Secret
Passo 4: Obter Application (Client) ID
- No registro do seu app, vá para "Overview"
- Copie o Application (client) ID - este é seu Client ID
Passo 5: Verificar Redirect URI
- No registro do seu app, clique em "Authentication" no menu à esquerda
- Em "Redirect URIs", verifique se seu URI de redirecionamento está listado:
https://your-domain.com/admin/mailbox/oauth/callback?provider=outlook
- Se não estiver presente, clique em "+ Add a platform" > "Web" e adicione-o
- Em "Implicit grant and hybrid flows", certifique-se de que "Access tokens" está marcado (se disponível)
- Clique em "Save"
Passo 6: Configurar no Perfex CRM
- Acesse a área admin do seu Perfex CRM
- Navegue para Mailbox > Configuration
- Selecione "OAuth2" como seu método de autenticação
- Selecione "Outlook" como seu provedor
- Insira seu Client ID (Application ID do Azure)
- Insira seu Client Secret (o valor do secret que você copiou)
- Para organizações Microsoft 365: Insira seu Tenant ID (encontrado em Azure AD > Overview). Deixe em branco para contas Microsoft pessoais.
- Clique em "Save Configuration"
- Clique no botão "Connect Outlook"
- Autorize o aplicativo na janela popup da Microsoft
- Você deve ver uma mensagem de sucesso confirmando a conexão
Limitações e Considerações Importantes
Restrições do App Microsoft Azure
-
Requisitos de Consentimento Admin - Contas organizacionais (Microsoft 365/Office 365) requerem consentimento de administrador para certas permissões. O admin deve aprovar o app antes que os usuários possam usá-lo.
-
Restrições de Tipo de Conta:
- "Accounts in this organizational directory only" - Apenas usuários da sua organização
- "Accounts in any organizational directory" - Usuários de qualquer organização Microsoft 365
- "Accounts in any organizational directory and personal Microsoft accounts" - Máxima compatibilidade
- "Personal Microsoft accounts only" - Apenas contas pessoais @outlook.com, @hotmail.com
-
Requisitos de Tenant ID - Contas organizacionais requerem Tenant ID para autenticação adequada. Contas pessoais podem deixar em branco.
Verificação e Publicação do App
- Apps não verificados podem ser usados imediatamente para contas pessoais, mas podem mostrar mensagens de aviso aos usuários.
- Apps verificados requerem envio para a Microsoft App Store (opcional) e fornecem melhor experiência do usuário (sem avisos).
- Fluxo de Consentimento Admin - Para contas organizacionais, o admin deve conceder consentimento. O admin vê quais permissões o app solicita.
Atualização de Token
Nosso módulo lida automaticamente com a atualização de tokens:
- Refresh tokens: Obtidos automaticamente com permissão
offline_access - Expiração de token: Tipicamente 1 hora para tokens de acesso, 90 dias para tokens de atualização
- Atualização automática: Nosso módulo atualiza tokens automaticamente antes da expiração
Multi-Tenant vs. Single-Tenant
- Multi-Tenant: App pode ser usado por qualquer conta Microsoft (requer consentimento admin por organização)
- Single-Tenant: App só pode ser usado dentro da sua organização
Notas
- O URI de redirecionamento deve corresponder exatamente ao que você configurou no Azure Portal
- Mantenha seu Client Secret seguro - nunca o compartilhe publicamente
- Se você alterar seu domínio, atualize o URI de redirecionamento no Azure Portal
- Para contas organizacionais, certifique-se de que o consentimento admin foi concedido
- Tenant ID é necessário apenas para contas Microsoft 365/Office 365
- O fluxo OAuth é tratado inteiramente pela Microsoft - nosso módulo apenas inicia e recebe o callback
Solução de Problemas
Erro "AADSTS50011: Redirect URI mismatch":
- Certifique-se de que o URI de redirecionamento no Azure Portal corresponde exatamente:
https://your-domain.com/admin/mailbox/oauth/callback?provider=outlook - Verifique barras finais ou incompatibilidades HTTP vs HTTPS
- Verifique se o URI está listado sob o tipo de plataforma "Web"
Erro "Admin consent required":
- Isso é esperado para contas organizacionais (política da Microsoft)
- Entre em contato com seu administrador Microsoft 365 para conceder consentimento
- O admin pode conceder consentimento no Azure Portal > Enterprise applications
Erro "Invalid client secret":
- Client secrets expiram - crie um novo no Azure Portal
- Certifique-se de ter copiado o "Value" (não o Secret ID)
- Verifique se o secret não expirou
Erro "AADSTS700016: Application not found":
- Verifique se o Client ID está correto
- Certifique-se de estar usando o Application (client) ID, não o Object ID
- Verifique se o registro do app existe no tenant Azure AD correto
Erro "Token refresh failed":
- Certifique-se de que a permissão
offline_accessfoi concedida - Verifique se o consentimento admin foi concedido (para contas organizacionais)
- Verifique se o client secret não expirou
Recursos Adicionais
- Microsoft Identity Platform Documentation
- Microsoft Graph API Documentation
- Azure Portal
- Microsoft OAuth 2.0 Flow
Requisitos de consentimento admin, restrições de tipo de conta e políticas de token são políticas de segurança da Microsoft para aplicações Azure. Essas limitações não são impostas pelo nosso software.