Asigne una función de Exchange específica a la autenticación de solo aplicación con Exchange Online Powershell

Asigne una función de Exchange específica a la autenticación de solo aplicación con Exchange Online Powershell

Necesito usar los siguientes cmdlets del módulo ExchangeOnline Powershell con una conexión desatendida.

  • Obtener mensaje de cuarentena
  • Vista previa-Mensaje de cuarentena
  • Mensaje de liberación de cuarentena
  • Mensaje de cuarentena de exportación
  1. Siguiendo esta primera documentaciónhttps://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps, Creé un registro de aplicación de Azure con un certificado autofirmado, asigné el permiso de API "Exchange.ManageAsApp" y luego otorgué el consentimiento.

  2. Luego creé un grupo de seguridad de Azure y agregué mi aplicación como miembro de este grupo.

  3. Luego creé un rol personalizado en el portal de Microsoft 365 Defender siguiendo esta documentación: https://learn.microsoft.com/en-us/defender-for-identity/role-groups

  4. En este rol, agregué el siguiente permiso personalizado:

  • Cuarentena de correo electrónico (administrar)
  • Enviar acciones avanzadas por correo electrónico (administrar) y solo lectura paraDatos sin procesar (correo electrónico y colaboración)
  1. Y por supuesto, asigné mi grupo creado en el paso 2 a este nuevo rol.

Todo esto me permite usar los primeros 2 cmdlets sin ningún problema pero no puedo acceder alMensaje de cuarentena de exportaciónyMensaje de liberación de cuarentena.

Podemos enumerar los permisos necesarios para este cmdlet a través de esos comandos (desde allí:https://learn.microsoft.com/en-us/powershell/exchange/find-exchange-cmdlet-permissions?view=exchange-ps)

PS > $Perms = Get-ManagementRole -Cmdlet Export-QuarantineMessage
PS > $Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}

Role           RoleAssigneeType RoleAssigneeName
----           ---------------- ----------------
Security Admin RoleGroup        Organization Management
Security Admin RoleGroup        SecurityAdmins_782500194



Role              RoleAssigneeType RoleAssigneeName
----              ---------------- ----------------
Transport Hygiene RoleGroup        Hygiene Management
Transport Hygiene RoleGroup        Organization Management

Probé este último comando:

PS > Add-RoleGroupMember "Hygiene Management" -Member <name of the application created at step 1>

Puedo ver el miembro de mi aplicación si ejecuto:

PS > Get-RoleGroupMember "Hygiene Management"

Pero todavía no tengo acceso alMensaje de cuarentena de exportaciónyMensaje de liberación de cuarentenacmdlets.

ACTUALIZAR

intento lo siguientehttps://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps#assign-custom-exchange-online-role-groups-to-the- aplicación-que-utiliza-principales-de-servicio

  1. Crear una función de Exchange personalizada con "Higiene del transporte" + "Administrador de seguridad"

  2. PD > $AadApp = Get-AzureADServicePrincipal -SearchString ""

    PS > New-ServicePrincipal -AppId $AadApp.AppId -ServiceId $AadApp.ObjectId -DisplayName "ServicePrincipal para mi aplicación"

    PS > $SP = Get-ServicePrincipal -Identity "ServicePrincipal para mi aplicación"

    PS > Add-RoleGroupMember -Identity "<rol creado en el paso 1>" -Member $SP.Identity

Sin suerte.

ACTUALIZAR Cambiar mi función de Exchange personalizada solo con: -Importación y exportación de buzones de correo -Búsqueda de buzones de correo -Aplicación de búsqueda de buzones -Seguimiento de mensajes -Higiene del transporte -Configuración de solo visualización -Destinatarios de solo visualización parece funcionar. Dejaré pasar el fin de semana para ver si este no es otro cambio que lleva tiempo replicar en el lado de Microsoft.

información relacionada