Microsoft 365 Group: restringir el envío solo a owners con Exchange Online PowerShell

¿Necesitas que solo los propietarios de un Microsoft 365 Group (incluidos los grupos con alias “.onmicrosoft.com”) puedan enviar correos al buzón del grupo? En esta guía práctica verás cómo hacerlo de forma segura con Exchange Online PowerShell, cómo verificarlo y cómo mantenerlo sin dolores de cabeza.

Índice

Resumen del caso y objetivo

Un equipo creó un Microsoft 365 Group y desea restringir el envío de correos a la dirección del grupo para que solo los propietarios (owners) tengan permiso de enviar al grupo completo. Los miembros no deben poder enviar mensajes al alias del grupo. La forma más simple y efectiva de implementar esto es usando el parámetro AcceptMessagesOnlyFromSendersOrMembers del cmdlet Set-UnifiedGroup en Exchange Online PowerShell.

Cómo funciona a nivel de Exchange

Los Microsoft 365 Groups son objetos “Unified Group” en Exchange Online. Igual que con los grupos de distribución, podemos definir una lista explícita de remitentes permitidos que pueden enviar mensajes al alias del grupo. Cuando configuras AcceptMessagesOnlyFromSendersOrMembers, el sistema solo acepta mensajes si el remitente está:

  • En la lista de direcciones/buzones especificados, o
  • Es miembro de un mail-enabled security group (grupo de seguridad habilitado para correo) que hayas incluido en esa lista.

Todo lo demás se rechaza con un rebote (NDR) por autorización insuficiente. Si además estableces AllowExternalSenders:$false, bloquearás cualquier intento desde direcciones externas al tenant.

Requisitos previos

  • Rol con permisos para administrar Exchange Online (por ejemplo, Exchange Administrator o permisos delegados equivalentes).
  • PowerShell 5.1 o PowerShell 7.x en tu estación de administración.
  • Módulo ExchangeOnlineManagement instalado y conectividad saliente hacia los servicios de Microsoft 365.

Pasos rápidos para aplicar la restricción

Los siguientes pasos te llevan de cero a la configuración final. Si ya tienes el módulo instalado, puedes omitir lo correspondiente.

Conectar a Exchange Online

Set-ExecutionPolicy RemoteSigned
Install-Module -Name ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline

Permitir que solo los owners envíen al grupo

Reemplaza group@domain.com por el alias del grupo y lista únicamente las direcciones de los propietarios:

Set-UnifiedGroup -Identity "group@domain.com" `
  -AcceptMessagesOnlyFromSendersOrMembers owner1@domain.com,owner2@domain.com

A partir de este cambio, solo esos remitentes podrán enviar mensajes al grupo. Cualquier otro remitente (incluidos los miembros) será rechazado.

Bloquear remitentes externos (opcional pero recomendado)

Set-UnifiedGroup -Identity "group@domain.com" -AllowExternalSenders:$false

Esto evita envíos desde fuera de tu organización. Mantén también la autenticación de remitentes habilitada (suele estar en $true por defecto).

Verificar la configuración

Get-UnifiedGroup -Identity "group@domain.com" |
  Format-List DisplayName,PrimarySmtpAddress,AcceptMessagesOnlyFromSendersOrMembers,AllowExternalSenders

Conceptos clave para entender la configuración

ConceptoDescripciónImplicación en el caso
OwnerUsuario con permisos de administración sobre el grupo (agregar/quitar miembros, cambiar configuración).No existe un parámetro “dinámico” de “solo owners”; debes enumerar sus direcciones o usar un grupo de seguridad con correo.
MemberUsuario que pertenece al grupo y recibe mensajes/permite colaborar.En este escenario, no debe poder enviar al alias del grupo.
AcceptMessagesOnlyFromSendersOrMembersLista de remitentes permitidos (buzones, usuarios de correo o grupos habilitados para correo).Corazón de la solución. Limita quién puede enviar al grupo.
AllowExternalSendersPermite o bloquea envíos desde direcciones externas al tenant.Déjalo en $false para endurecer la superficie de ataque.

Enumerar owners sin mantenimiento manual

Como no existe una opción nativa de “solo owners”, lo más limpio es:

  1. Opción A: Rellenar la lista con los owners actuales y actualizarla cuando cambien.
  2. Opción B (recomendada): Crear un mail-enabled security group (p. ej. Owners-GroupX), agregar ahí a los propietarios y usar este grupo como único remitente permitido.

Opción A: Poblar la lista con los owners actuales

Si ya tienes los owners definidos en el grupo, puedes extraerlos y aplicarlos de una vez:

$groupId = "group@domain.com"

Obtener owners del Unified Group

\$owners = (Get-UnifiedGroupLinks -Identity \$groupId -LinkType Owners |
Where-Object {$\_.PrimarySmtpAddress} |
Select-Object -ExpandProperty PrimarySmtpAddress)

if (-not \$owners -or \$owners.Count -eq 0) {
throw "El grupo no tiene owners con dirección SMTP. Define los owners antes de restringir el envío."
}

Aplicar restricción de envío solo a esos owners

Set-UnifiedGroup -Identity \$groupId -AcceptMessagesOnlyFromSendersOrMembers \$owners

(Opcional) Bloquear externos

Set-UnifiedGroup -Identity \$groupId -AllowExternalSenders:\$false

Verificar

Get-UnifiedGroup -Identity \$groupId |
Format-List DisplayName,PrimarySmtpAddress,AcceptMessagesOnlyFromSendersOrMembers,AllowExternalSenders 

Opción B: Usar un mail-enabled security group para los owners

Esta opción reduce el mantenimiento: cuando cambien los propietarios, solo actualizas el grupo de seguridad.

# 1) Crear el grupo de seguridad habilitado para correo
New-DistributionGroup -Name "Owners-GroupX" -PrimarySmtpAddress owners-groupx@domain.com -Type Security

2) Agregar a los propietarios como miembros del grupo de seguridad

Add-DistributionGroupMember -Identity "Owners-GroupX" -Member [owner1@domain.com](mailto:owner1@domain.com)
Add-DistributionGroupMember -Identity "Owners-GroupX" -Member [owner2@domain.com](mailto:owner2@domain.com)

3) Usar ese grupo como remitente permitido del Microsoft 365 Group

Set-UnifiedGroup -Identity "[group@domain.com](mailto:group@domain.com)" \`
-AcceptMessagesOnlyFromSendersOrMembers [owners-groupx@domain.com](mailto:owners-groupx@domain.com)

4) (Opcional) Bloquear externos

Set-UnifiedGroup -Identity "[group@domain.com](mailto:group@domain.com)" -AllowExternalSenders:\$false

5) Comprobación

Get-UnifiedGroup -Identity "[group@domain.com](mailto:group@domain.com)" |
Format-List DisplayName,PrimarySmtpAddress,AcceptMessagesOnlyFromSendersOrMembers,AllowExternalSenders 

Buenas prácticas y notas operativas

  • Evita mantenimiento manual usando un grupo de seguridad con correo para los owners. Así, no tocas el parámetro del Microsoft 365 Group cada vez que un owner cambia.
  • Usa identidades habilitadas para correo: buzones, usuarios de correo o grupos con correo. Direcciones sueltas sin objeto en Azure AD no funcionarán.
  • Propagación: tras aplicar cambios, puede haber una ventana de propagación (normalmente unos minutos) hasta que todos los flujos de transporte reflejen la nueva regla.
  • Alias “.onmicrosoft.com”: la configuración aplica al objeto del grupo, independientemente de si usas el dominio inicial .onmicrosoft.com o un dominio personalizado.
  • Autenticación: mantén la autenticación de remitentes habilitada; reforzarás la protección frente a suplantación interna.

Verificación y pruebas finales

  1. Envía un mensaje de prueba desde una cuenta owner incluida en la lista o en el grupo de seguridad: el mensaje debe entregarse al buzón del grupo.
  2. Envía un mensaje de prueba desde un usuario que sea miembro pero no owner: debe rebotar con un error de autorización.
  3. Desde una cuenta externa, prueba que el rebote ocurra si AllowExternalSenders está en $false.

Para una verificación adicional, revisa el parámetro AcceptMessagesOnlyFromSendersOrMembers con:

Get-UnifiedGroup -Identity "group@domain.com" |
  Select-Object -ExpandProperty AcceptMessagesOnlyFromSendersOrMembers

Solución de problemas frecuentes

SíntomaCausa probableCómo resolver
Rebotes inesperados de ownersLos owners no están en la lista o su objeto no es “mail-enabled”.Ejecuta Get-UnifiedGroupLinks -LinkType Owners y valida PrimarySmtpAddress. Agrega las direcciones correctas y vuelve a aplicar la regla.
Miembros siguen pudiendo enviarLa lista de remitentes permitidos está vacía o incluye inadvertidamente a “Members”.Vuelve a establecer AcceptMessagesOnlyFromSendersOrMembers con owners específicos o el grupo de seguridad. Verifica que no haya otros objetos permitidos.
Externos pueden enviarAllowExternalSenders está en $true.Ejecuta Set-UnifiedGroup -AllowExternalSenders:$false y verifica.
Error de permisos al conectarLa cuenta carece de roles necesarios.Usa una cuenta con rol de Exchange Administrator o ajusta Roles en Entra ID.
El cambio tarda en surtir efectoPropagación interna de Exchange Online.Espera unos minutos y vuelve a probar. Confirma con Get-UnifiedGroup.

Checklist de implementación

  • Identifica el UPN/SMTP del grupo: group@domain.com.
  • Confirma los owners y sus direcciones SMTP.
  • Decide si usarás un grupo de seguridad con correo.
  • Aplica AcceptMessagesOnlyFromSendersOrMembers.
  • Deshabilita AllowExternalSenders si procede.
  • Verifica con Get-UnifiedGroup y pruebas de envío.

Snippets listos para copiar y pegar

Configurar en un solo bloque

# Conectar
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline

Variables

\$Group   = "[group@domain.com](mailto:group@domain.com)"
\$Owners  = "[owner1@domain.com](mailto:owner1@domain.com)","[owner2@domain.com](mailto:owner2@domain.com)"

Aplicar

Set-UnifiedGroup -Identity \$Group -AcceptMessagesOnlyFromSendersOrMembers \$Owners
Set-UnifiedGroup -Identity \$Group -AllowExternalSenders:\$false

Verificar

Get-UnifiedGroup -Identity \$Group |
Format-List DisplayName,PrimarySmtpAddress,AcceptMessagesOnlyFromSendersOrMembers,AllowExternalSenders 

Revertir la restricción

Si necesitas volver a permitir envíos sin restricciones:

Set-UnifiedGroup -Identity "group@domain.com" -AcceptMessagesOnlyFromSendersOrMembers $null

Confirma que el valor haya quedado vacío al consultar el grupo.

Automatización: sincronizar owners a un grupo de seguridad

Para minimizar operaciones manuales, puedes ejecutar periódicamente un script que sincronice los owners del Unified Group con el mail-enabled security group usado como “lista de remitentes permitidos”.

param(
  [Parameter(Mandatory=$true)][string]$UnifiedGroupSmtp,
  [Parameter(Mandatory=$true)][string]$OwnersSecurityGroupName
)

Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline

try {
\$ug = Get-UnifiedGroup -Identity \$UnifiedGroupSmtp -ErrorAction Stop
\$secGroup = Get-DistributionGroup -Identity \$OwnersSecurityGroupName -ErrorAction SilentlyContinue

if (-not \$secGroup) {
Write-Host "Creando grupo de seguridad con correo: \$OwnersSecurityGroupName"
\$secGroup = New-DistributionGroup -Name \$OwnersSecurityGroupName -Type Security
}

\$currentMembers = (Get-DistributionGroupMember -Identity \$secGroup.Identity -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty PrimarySmtpAddress) + @()

\$ownerSmtps = (Get-UnifiedGroupLinks -Identity \$ug.Identity -LinkType Owners |
Where-Object {$\_.PrimarySmtpAddress} |
Select-Object -ExpandProperty PrimarySmtpAddress) + @()

Agregar faltantes

foreach (\$addr in \$ownerSmtps) {
if (\$currentMembers -notcontains \$addr) {
Add-DistributionGroupMember -Identity \$secGroup.Identity -Member \$addr -BypassSecurityGroupManagerCheck
Write-Host "Agregado \$addr a \$(\$secGroup.DisplayName)"
}
}

Quitar sobrantes (opcional)

foreach (\$addr in \$currentMembers) {
if (\$ownerSmtps -notcontains \$addr) {
Remove-DistributionGroupMember -Identity \$secGroup.Identity -Member \$addr -Confirm:\$false
Write-Host "Quitado \$addr de \$(\$secGroup.DisplayName)"
}
}

Asegurar que solo el grupo de seguridad esté como remitente permitido

Set-UnifiedGroup -Identity \$ug.Identity -AcceptMessagesOnlyFromSendersOrMembers \$secGroup.PrimarySmtpAddress
Set-UnifiedGroup -Identity \$ug.Identity -AllowExternalSenders:\$false

Write-Host "Sincronización completa para \$UnifiedGroupSmtp"
}
catch {
Write-Error $\_
}
finally {
Disconnect-ExchangeOnline -Confirm:\$false
} 

Puedes programarlo como tarea en Windows para que se ejecute diariamente y mantenga alineada la lista de remitentes permitidos con los owners vigentes.

Comparación con otras alternativas

  • Reglas de transporte (mail flow rules): Podrían filtrar envíos al alias, pero son más complejas de mantener, y no sustituyen una lista de remitentes permitidos a nivel de objeto. La opción con Set-UnifiedGroup es más directa y menos propensa a errores.
  • Moderación de mensajes: No bloquea; solicita aprobación. En escenarios de “solo owners pueden enviar”, la moderación introduce latencia operativa y carga adicional.

Preguntas frecuentes

¿Debo usar el dominio “.onmicrosoft.com” o un dominio personalizado?
Puedes usar cualquiera; la restricción aplica al objeto del grupo, no al dominio.

¿Los owners deben ser también miembros?
No es obligatorio. La capacidad de enviar al alias del grupo está controlada por la lista de remitentes permitidos, no por la membresía.

¿Puedo incluir aplicaciones o buzones compartidos?
Sí, siempre que sean objetos habilitados para correo en tu organización.

¿Qué pasa si agrego un nuevo owner?
Si usas la Opción B, solo agrégalo al mail-enabled security group. Si usas la Opción A, vuelve a ejecutar Set-UnifiedGroup con la lista actualizada.

¿Cómo audito quién envió al grupo?
Puedes usar registros de auditoría y seguimiento de mensajes en Exchange Online para ver envíos realizados y su estado.

Resumen ejecutivo

Para restringir el envío a un Microsoft 365 Group y permitir solo a los owners:

  1. Conéctate a Exchange Online con el módulo oficial.
  2. Establece AcceptMessagesOnlyFromSendersOrMembers con las direcciones de los owners o con un mail-enabled security group.
  3. Configura AllowExternalSenders:$false si no necesitas remitentes externos.
  4. Verifica con Get-UnifiedGroup y realiza pruebas de envío.

Apéndice: comandos rápidos

AcciónComando
ConectarConnect-ExchangeOnline
Restringir a owners específicosSet-UnifiedGroup -Identity "group@domain.com" -AcceptMessagesOnlyFromSendersOrMembers owner1@domain.com,owner2@domain.com
Bloquear externosSet-UnifiedGroup -Identity "group@domain.com" -AllowExternalSenders:$false
VerificarGet-UnifiedGroup -Identity "group@domain.com" | Format-List ...
Revertir restricciónSet-UnifiedGroup -Identity "group@domain.com" -AcceptMessagesOnlyFromSendersOrMembers $null

Conclusión

La solución más robusta y simple para asegurar que solo los owners puedan enviar al alias de un Microsoft 365 Group es aprovechar AcceptMessagesOnlyFromSendersOrMembers desde Exchange Online PowerShell. Si encapsulas a los propietarios en un mail-enabled security group, el mantenimiento es mínimo y la política permanece consistente a lo largo del tiempo. Complementa con AllowExternalSenders:$false para cerrar la puerta a remitentes externos y ejecuta verificaciones periódicas. Con estos pasos, tu grupo quedará protegido y bajo control, sin fricción para los usuarios autorizados.

Índice