Configurar la Autenticación OAuth de Outlook/Microsoft 365
Esta guía te llevará a través de la creación de una aplicación de Microsoft Azure para la autenticación OAuth con Outlook/Microsoft 365. OAuth proporciona una forma más segura de acceder a tu cuenta de Outlook en comparación con la autenticación tradicional por contraseña.
Requisitos Previos
- Una cuenta de Microsoft (personal o Microsoft 365/Office 365)
- Acceso al Portal de Azure
- La URL de instalación de tu Perfex CRM (para la configuración de URI de redirección)
Para organizaciones con Microsoft 365, puede ser necesaria la aprobación del administrador.
Configuración Paso a Paso
Paso 1: Registrar una Aplicación en el Portal de Azure
- Ve al Portal de Azure
- Inicia sesión con tu cuenta de Microsoft
- Navega a "Azure Active Directory" (o búscalo)
- Haz clic en "App registrations" en el menú izquierdo
- Haz clic en "+ New registration"
- Completa los detalles de la aplicación:
- Name: Ingresa un nombre (por ejemplo, "Perfex CRM Mailbox")
- Supported account types: Elige "Accounts in any organizational directory and personal Microsoft accounts" para máxima compatibilidad
- Redirect URI:
- Plataforma: Web
- URI:
https://tu-dominio.com/admin/mailbox/oauth/callback?provider=outlook - Reemplaza
tu-dominio.comcon tu dominio real de Perfex CRM
- Haz clic en "Register"
Paso 2: Configurar Permisos de API
- En el registro de tu app, haz clic en "API permissions" en el menú izquierdo
- Haz clic en "+ Add a permission"
- Selecciona "Microsoft Graph"
- Selecciona "Delegated permissions"
- Agrega los siguientes permisos:
Mail.Read- Leer correo en todos los buzonesMail.ReadWrite- Leer y escribir correo en todos los buzonesMail.Send- Enviar correo como el usuariooffline_access- Mantener acceso a los datos a los que se ha otorgado acceso (para actualización de tokens)
- Haz clic en "Add permissions"
- IMPORTANTE: Haz clic en "Grant admin consent for [Tu Organización]" si ves este botón
Esto es obligatorio para cuentas de organización. Requiere privilegios de administrador.
Paso 3: Crear Client Secret
- En el registro de tu app, haz clic en "Certificates & secrets" en el menú izquierdo
- Haz clic en "+ New client secret"
- Ingresa una descripción (por ejemplo, "Perfex Mailbox Secret")
- Elige un período de expiración: 24 meses (recomendado para producción)
- Haz clic en "Add"
- IMPORTANTE: Copia el Value inmediatamente (no podrás verlo de nuevo) - este es tu Client Secret
Paso 4: Obtener el ID de Aplicación (Client ID)
- En el registro de tu app, ve a "Overview"
- Copia el Application (client) ID - este es tu Client ID
Paso 5: Configurar URI de Redirección (Verificar)
- En el registro de tu app, haz clic en "Authentication" en el menú izquierdo
- En "Redirect URIs", verifica que tu URI de redirección esté listada:
https://tu-dominio.com/admin/mailbox/oauth/callback?provider=outlook
- Si no está presente, haz clic en "+ Add a platform" > "Web" y agrégala
- En "Implicit grant and hybrid flows", asegúrate de que "Access tokens" esté marcado (si está disponible)
- Haz clic en "Save"
Paso 6: Configurar en Perfex CRM
- Ve al área de administración de tu Perfex CRM
- Navega a Mailbox > Configuration
- Selecciona "OAuth2" como tu método de autenticación
- Selecciona "Outlook" como tu proveedor
- Ingresa tu Client ID (Application ID de Azure)
- Ingresa tu Client Secret (el valor del secreto que copiaste)
- Para organizaciones Microsoft 365: Ingresa tu Tenant ID (se encuentra en Azure AD > Overview). Déjalo en blanco para cuentas personales de Microsoft.
- Haz clic en "Save Configuration"
- Haz clic en el botón "Connect Outlook"
- Autoriza la aplicación en la ventana emergente de Microsoft
- Deberías ver un mensaje de éxito confirmando la conexión
Limitaciones y Consideraciones Importantes
Restricciones de Aplicaciones de Microsoft Azure
-
Requisitos de Consentimiento de Administrador - Las cuentas de organización (Microsoft 365/Office 365) requieren consentimiento del administrador para ciertos permisos. El administrador debe aprobar la app antes de que los usuarios puedan usarla.
-
Restricciones de Tipo de Cuenta:
- "Accounts in this organizational directory only" - Solo usuarios en tu organización
- "Accounts in any organizational directory" - Usuarios de cualquier organización Microsoft 365
- "Accounts in any organizational directory and personal Microsoft accounts" - Máxima compatibilidad
- "Personal Microsoft accounts only" - Solo cuentas personales @outlook.com, @hotmail.com
-
Requisitos de Tenant ID - Las cuentas de organización requieren Tenant ID para autenticación adecuada. Las cuentas personales pueden dejarlo en blanco.
Verificación y Publicación de la App
- Las Apps No Verificadas pueden usarse inmediatamente para cuentas personales pero pueden mostrar mensajes de advertencia a los usuarios.
- Las Apps Verificadas requieren envío a la Microsoft App Store (opcional) y proporcionan mejor experiencia de usuario (sin advertencias).
- Flujo de Consentimiento de Administrador - Para cuentas de organización, el administrador debe otorgar consentimiento. El administrador ve qué permisos solicita la app.
Actualización de Tokens
Nuestro módulo maneja automáticamente la actualización de tokens:
- Tokens de actualización: Obtenidos automáticamente con el permiso
offline_access - Expiración de tokens: Típicamente 1 hora para tokens de acceso, 90 días para tokens de actualización
- Actualización automática: Nuestro módulo actualiza los tokens automáticamente antes de la expiración
Multi-Tenant vs Single-Tenant
- Multi-Tenant: La app puede ser usada por cualquier cuenta de Microsoft (requiere consentimiento de admin por organización)
- Single-Tenant: La app solo puede ser usada dentro de tu organización
Notas
- La URI de redirección debe coincidir exactamente con lo que configuraste en el Portal de Azure
- Mantén tu Client Secret seguro - nunca lo compartas públicamente
- Si cambias tu dominio, actualiza la URI de redirección en el Portal de Azure
- Para cuentas de organización, asegúrate de que se otorgue el consentimiento de admin
- El Tenant ID solo es necesario para cuentas de Microsoft 365/Office 365
- El flujo OAuth es manejado completamente por Microsoft - nuestro módulo solo inicia y recibe el callback
Solución de Problemas
Error "AADSTS50011: Redirect URI mismatch":
- Asegúrate de que la URI de redirección en el Portal de Azure coincida exactamente:
https://tu-dominio.com/admin/mailbox/oauth/callback?provider=outlook - Verifica barras diagonales finales o discrepancias HTTP vs HTTPS
- Verifica que la URI esté listada bajo el tipo de plataforma "Web"
Error "Admin consent required":
- Esto es esperado para cuentas de organización (política de Microsoft)
- Contacta a tu administrador de Microsoft 365 para otorgar consentimiento
- El admin puede otorgar consentimiento en Portal de Azure > Enterprise applications
Error "Invalid client secret":
- Los client secrets expiran - crea uno nuevo en el Portal de Azure
- Asegúrate de haber copiado el "Value" (no el Secret ID)
- Verifica que el secreto no haya expirado
Error "AADSTS700016: Application not found":
- Verifica que el Client ID sea correcto
- Asegúrate de estar usando el Application (client) ID, no el Object ID
- Verifica que el registro de la app exista en el tenant de Azure AD correcto
Error "Token refresh failed":
- Asegúrate de que el permiso
offline_accessesté otorgado - Verifica que se haya otorgado el consentimiento de admin (para cuentas de organización)
- Verifica que el client secret no haya expirado
Recursos Adicionales
- Documentación de Microsoft Identity Platform
- Documentación de Microsoft Graph API
- Portal de Azure
- Flujo OAuth 2.0 de Microsoft
Los requisitos de consentimiento de admin, restricciones de tipo de cuenta y políticas de tokens son políticas de seguridad de Microsoft para aplicaciones de Azure. Estas limitaciones no son impuestas por nuestro software.