El uso de usuarios invitados (B2B Guest) es una práctica habitual en entornos Business Central compartidos entre varias organizaciones. En estos escenarios, Business Central se encuentra desplegado en un inquilino de Microsoft Entra ID, mientras que los usuarios que acceden a la aplicación y las cuentas de Exchange Online utilizadas para el envío de correo electrónico residen en otro inquilino distinto. Como consecuencia, la configuración de la autenticación OAuth para SMTP requiere realizar ajustes tanto en Business Central como en el inquilino donde se administran las identidades y buzones de correo.
A continuación, se detallan los pasos necesarios para configurar este escenario.
Creación de un registro de aplicación en Azure Portal
En el portal de Azure del inquilino que hospeda las cuentas de Exchange Online utilizadas por Business Central, se deberá acceder al recurso Registros de aplicaciones

Haga clic en Nuevo Registro

Configure el nombre deseado, indique los mismos valores que se muestran en la siguiente pantalla, y una vez informado todo haga clic en el botón Registrar

Se mostrará la siguiente pantalla, guarde los valores de id de aplicación y de inquilino. Los necesitará en pasos futuros

Concesión de permisos
En la aplicación registrada acceda a la opción Permisos de API, en la página que se mostrará en el panel central haga clic en Agregar permisos

En la sección de pantalla que se muestra buscamos en APIS que usa mi organización busque la opción Office 365 Exchange Online.

Escoja la opción Permisos de aplicación

En la siguiente pantalla, de los permisos disponibles en la sección SMTP marque para activar la casilla de selección de SMTP.SendAsApp

Una vez finalizada la selección, en la pantalla donde aparecen listados todos los permisos seleccionados para la aplicación, haga clic en la opción Conceder consentimiento de administrador, en la columna estado se debe mostrar el icono en verde conforme se han aplicado correctamente.

Creación de un secreto de cliente o un certificado
En la página de la aplicación en Certificados y secretos haga clic en Nuevo secreto de cliente

Indique un nombre para identificarlo y un periodo de validez.

Al agregar el nuevo secreto, en la pantalla siguiente se mostrará el valor generado, es importante copiar el contenido en este momento, ya que al salir de esta página el secreto se ocultará y no volverá a mostrarse.

Registrar la entidad de servicio en Exchange Online
En los pasos siguientes es importante la utilización de un usuario cuya cuenta sea la de un administrador global o administrador Exchange del inquilino de los usuarios invitados. Abra el navegador y utilice el vínculo siguiente:
https://login.microsoftonline.com/<TenantA_ID>/oauth2/v2.0/authorize?client_id=<Client_ID from Tenant A>&scope=https://graph.microsoft.com/.default&response_type=code&response_mode=query&prompt=consent
Substituya <TenantA_ID> y <Client_ID from Tenant A> por los valores copiados en el primer paso al crear el registro de la aplicación. Es posible que al aceptar los permisos en la página que se muestra al indicar la URL en el navegador, la página a la que nos redirige se quede en blanco, no es señal de error, puede continuar con los pasos restantes.
En el portal Azure busque las Aplicaciones Empresariales

En el listado de aplicaciones de la pantalla siguiente encontrará la aplicación registrada, copie el id. de Objeto necesario para los siguientes pasos

A continuación, ejecute el siguiente script de PowerShell indicando en las variables los valores:
- $AppId = id de aplicación guardado en el primer paso al crear el registro de aplicación
- $ServiceId = id de objeto copiado en el paso anterior desde Aplicaciones empresariales
- $Display = nombre de la aplicación
Para conectar es necesario utilizar una cuenta de administrador global o de Exchange.
Install-Module ExchangeOnlineManagement -Scope CurrentUser
Import-Module ExchangeOnlineManagement
# Login with Tenant A admin
Connect-ExchangeOnline -UserPrincipalName admin@yourtenantA.onmicrosoft.com
$AppId = <your app ID> # The App ID of the enterprise app in Tenant A's Microsoft Entra admin center.
$ServiceId = <your service ID> # The object ID of the enterprise app in Tenant A's Microsoft Entra admin center.
$Display = "SMTP_OAuth_App" # The name of the service principal you want to create.
New-ServicePrincipal -AppId $AppId -ServiceId $ServiceId -DisplayName $Display
Durante este paso puede aparecer el error “window handle must be configured”, dependiendo de la versión del módulo ExchangeOnlineManagement instalada. Este comportamiento está relacionado con determinadas versiones del módulo y puede resolverse de dos formas:
- Ejecutando el script desde una consola de PowerShell estándar en lugar de PowerShell ISE.
- Utilizando una versión específica del módulo ExchangeOnlineManagement compatible con el proceso de autenticación.
En este artículo se ha optado por la segunda alternativa, utilizando una versión concreta del módulo para evitar la aparición del error.
Uninstall-Module -Name ExchangeOnlineManagement -AllVersions -Force
Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.5.1 -Force
Conceder permiso a la aplicación para enviar como si fuera tu buzón
Ejecute el siguiente script de PowerShell, indicando los valores siguientes:
# Replace this with the mailbox you use as the from_addr / user= in XOAUTH2.
$Mailbox = "someuser@xxx.onmicrosoft.com"
$ObjectID = "{Your object ID}"
Add-MailboxPermission -Identity $Mailbox -User $ObjectId -AccessRights FullAccess -AutoMapping:$false
Add-RecipientPermission -Identity $Mailbox -Trustee $ObjectId -AccessRights SendAs -Confirm:$false
# If you have multiple users, create a group for them and then assign them.
Get-DistributionGroupMember "Your group name" |
ForEach-Object {
Add-MailboxPermission -$_.PrimarySmtpAddress -User $ObjectId -AccessRights FullAccess -AutoMapping:$false
Add-RecipientPermission -Identity $Mailbox -Trustee $ObjectId -AccessRights SendAs -Confirm:$false
}
- $Mailbox = buzón de correo para el que deseamos configurar el SMTP para utilizar Business Central. Yo en mis pruebas siempre he utilizado un buzón compartido
- $ObjectId = Id. de objeto copiado desde la pantalla de Aplicaciones Empresariales
Una vez ejecutado este script, al ejecutar la siguiente instrucción los permisos resultantes deben ser FullAcces o SendAS
Get-MailboxPermission -Identity $Mailbox | ? {$_.User -eq $Display}
Verifica tu configuración de OAuth SMTP
Puede verificar si SMTP AUTH y OAuth2 están habilitados. Para conectar es necesario utilizar una cuenta de administrador global o de Exchange.
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -UserPrincipalName admin@yourtenantA.onmicrosoft.com
# Organization-level settings (recommended starting point)
Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled
Get-OrganizationConfig | Format-List OAuth2ClientProfileEnabled
# If SMTP AUTH is disabled at the organization level, enable it (false means enabled):
Set-TransportConfig -SmtpClientAuthenticationDisabled $false
# If OAuth2 client profiles are not enabled, enable them (true means enabled):
Set-OrganizationConfig -OAuth2ClientProfileEnabled $true
Si SMTP AUTH no estuviera habilitada debe ejecutar el siguiente script
Get-CASMailbox -Identity admin@yourtenantA.onmicrosoft.com | Format-List SmtpClientAuthenticationDisabled
# If SMTP AUTH is disabled for the mailbox, enable it:
Set-CASMailbox -Identity admin@yourtenantA.onmicrosoft.com -SmtpClientAuthenticationDisabled $false
Configuración del conector SMTP en Business Central
Para el último paso de la configuración debe abrir sesión en Business Central. En la búsqueda navegue a la pantalla “Cuentas de correo electrónicos”

Haga clic en Agregar una nueva cuenta, y haga clic en Siguiente en la pantalla que se muestra a continuación.

Seleccione la configuración de una cuenta SMTP

Aplique los valores por defecto para una cuenta de servidor office 365, indique los valores para el buzón que ha configurado y habilitado en los pasos iniciales.

Al clicar Siguiente, en la pantalla que se muestra a continuación active la casilla Uso del registro de aplicaciones

Configure los valores obtenidos en el paso de registro de la aplicación

Al clicar Siguiente , el navegador abrirá la pantalla para aprobar los permisos, debe utilizar una cuenta que tenga permisos de administrador global o de Exchange del inquilino que gestione las cuentas, no del inquilino de Business Central

Al Aceptar se mostrará la siguiente pantalla de fin de proceso.

Con este paso Finalizado ya puede dar por cerrada la configuración.
La información contenida en este artículo se ha elaborado a partir de la documentación oficial de Microsoft Uso de SMTP para correo electrónico en un entorno multiinquilino – Business Central | Microsoft Learn y de pruebas realizadas por el autor para verificar el procedimiento descrito. Las capturas e instrucciones incluidas tienen como objetivo complementar la documentación oficial y facilitar su comprensión.
Esta información se proporciona “tal cual”, sin garantías de ningún tipo, explícitas o implícitas. Cada organización es responsable de evaluar, validar y probar los procedimientos descritos antes de su implementación. El autor declina cualquier responsabilidad sobre posibles pérdidas de datos, interrupciones del servicio o incidencias derivadas de la aplicación de las configuraciones descritas en este documento.
