Compartir a través de


Autenticación de OAuth para correos electrónicos de gran volumen para Microsoft 365

Obtenga información sobre cómo usar la autenticación de OAuth para conectarse con protocolos SMTP y acceder a los datos de correo electrónico de los usuarios de Office 365.

La compatibilidad de OAuth2 con los protocolos SMTP, tal como se describe a continuación, está disponible tanto para los usuarios de Microsoft 365 (que incluye Office en la Web) como para los usuarios de Outlook.com.

Si no está familiarizado con el protocolo OAuth 2.0, consulte Protocolo de OAuth 2.0 en Plataforma de identidad de Microsoft información general. Para obtener más información sobre las bibliotecas de autenticación de Microsoft (MSAL), que implementan el protocolo OAuth 2.0 para autenticar usuarios y acceder a las API seguras, consulte Información general de MSAL.

Registrar su aplicación

Para usar OAuth, una aplicación debe registrarse con Microsoft Entra.

Siga las instrucciones que aparecen en Registro de una aplicación con el Plataforma de identidad de Microsoft para crear una nueva aplicación.

  1. Inicie sesión en el Centro de administración Microsoft Entra al menos como administrador de aplicaciones en la nube.

  2. Vaya aAplicaciones> de identidad>Registros de aplicaciones y seleccione Nuevo registro.

    Captura de pantalla del nuevo registro.

  3. Escriba un nombre para mostrar para la aplicación. Los usuarios de la aplicación pueden ver el nombre para mostrar cuando usan la aplicación, por ejemplo, durante el inicio de sesión. Puede cambiar el nombre para mostrar en cualquier momento y varios registros de aplicaciones pueden compartir el mismo nombre. El identificador de aplicación (cliente) generado automáticamente por el registro de la aplicación, no su nombre para mostrar, identifica de forma única la aplicación dentro de la plataforma de identidad.

    Captura de pantalla del registro de una aplicación.

  4. Después del registro, se crean varios identificadores, algunos de ellos se requieren más adelante para obtener un token de OAuth 2.0.

    Captura de pantalla de varios identificadores.

Agregar permisos de API

  1. En el menú de la izquierda, seleccione Permisos de API y seleccione Agregar un permiso.

    Captura de pantalla de los permisos de la API hveoauth.

  2. Vaya a API que usa mi organización y busque Office 365 Exchange Online.

    Captura de pantalla de las API que usa mi organización.

  3. En Solicitar permisos de API, elija Permisos de aplicación, seleccione Mail.Send y seleccione Agregar permisos.

  4. Después de agregar el permiso de API, el administrador debe seleccionar Conceder consentimiento de administrador.

    Captura de pantalla de concesión de consentimiento del administrador.

Estamos admitiendo los permisos de delegación y de aplicación para permitir aplicaciones heredadas de terceros de OAuth, ya que usan permisos de aplicación con secretos de aplicación.

Delegar permisos:

  1. En la pestaña Permisos de API, agregue el permiso Mail.Send API de Office 365 Exchange Online\Permisos delegados.
  2. En la pestaña Permisos de API , seleccione Conceder consentimiento de administrador.
  3. En la pestaña Autenticación , habilite Permitir flujos de cliente público.
  4. Use las credenciales del usuario de correo de HVE para solicitar un token para la audiencia https://outlook.office.com/.default.

Permisos de aplicación:

  1. En la pestaña Permisos de API, agregue el permiso Mail.Send API de Office 365 Exchange Online\Permisos de aplicación.
  2. En la pestaña Permisos de API , seleccione Conceder consentimiento de administrador.
  3. En la pestaña Certificados & secretos , agregue un nuevo secreto de cliente.
  4. Use el secreto de cliente para solicitar un token para la audiencia https://outlook.office.com/.default.

Intercambio de protocoloS SMTP de HVE

Para autenticar una conexión de servidor SMTP, el cliente debe responder con un AUTH comando en SASL XOAUTH2 formato. SASL XOAUTH2 codifica el nombre de usuario y el token de acceso juntos en el formato siguiente:

base64("user=" + userName + "^Aauth=Bearer " + accessToken + "^A^A") 

^A representa un control + A (%x01).

Por ejemplo, el SASL XOAUTH2 formato de acceso application@contoso.onmicrosoft.com con token de EwBAAl3BAAUFFpUAo7J3Ve0bjLBWZWCclRC3EoAA acceso es:

base64("user=application@contoso.onmicrosoft.com^Aauth=Bearer EwBAAl3BAAUFFpUAo7J3Ve0bjLBWZWCclRC3EoAA^A^A") 

Intercambio de mensajes cliente-servidor de ejemplo que da como resultado una autenticación correcta:

[connection begins]

C: auth xoauth2

S: 334

C: dXNlcj1hcHBsaWNhdGlvbkBjb250b3NvLm9ubWljcm9zb2Z0LmNvbQFBdXRoPUJlYXJlciBFd0JBQWwzQkFBVUZGcFVBbzdKM1ZlMGJqTEJXWldDY2xSQzNFb0FBAQE=

S: 235 2.7.0 Authentication successful

[connection continues...]

Intercambio de mensajes cliente-servidor de ejemplo que produce un error de autenticación:

[connection begins]

C: auth xoauth2

S: 334

C: dXNlcj1hcHBsaWNhdGlvbkBjb250b3NvLm9ubWljcm9zb2Z0LmNvbQFBdXRoPUJlYXJlciBFd0JBQWwzQkFBVUZGcFVBbzdKM1ZlMGJqTEJXWldDY2xSQzNFb0FBAQE=

S: 535 5.7.3 Authentication unsuccessful