Atribuir função específica do Exchange à autenticação somente de aplicativo com o Exchange Online Powershell

Atribuir função específica do Exchange à autenticação somente de aplicativo com o Exchange Online Powershell

Preciso usar os seguintes cmdlets do módulo ExchangeOnline Powershell com uma conexão autônoma.

  • Mensagem de quarentena
  • Mensagem de quarentena de visualização
  • Mensagem de Quarentena de Lançamento
  • Exportar-Mensagem de Quarentena
  1. Seguindo esta primeira documentaçãohttps://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps, criei um registro de aplicativo do Azure com certificado autoassinado, atribuí a permissão de API "Exchange.ManageAsApp" e concedi o consentimento.

  2. Então criei um Grupo de Segurança do Azure e adicionei meu aplicativo como membro desse grupo.

  3. Em seguida, criei uma função personalizada no portal Microsoft 365 Defender seguindo esta documentação: https://learn.microsoft.com/en-us/defender-for-identity/role-groups

  4. Nesta função, adicionei a seguinte permissão personalizada:

  • Quarentena de e-mail (gerenciar)
  • Ações avançadas de e-mail (gerenciar) e somente leitura paraDados brutos (e-mail e colaboração)
  1. E, claro, atribuí meu grupo criado na etapa 2 a esta nova função

Tudo isso me permite usar os primeiros 2 cmdlets sem problemas, mas não consigo acessar oExportar-Mensagem de QuarentenaeMensagem de Quarentena de Lançamento.

Podemos listar as permissões necessárias para este cmdlet através desses comandos (a partir daí: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

Eu tentei este último comando:

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

Posso ver o membro do meu aplicativo se executar:

PS > Get-RoleGroupMember "Hygiene Management"

Mas ainda não tenho acesso aoExportar-Mensagem de QuarentenaeMensagem de Quarentena de Lançamentocmdlets.

ATUALIZAR

Eu tento o seguintehttps://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps#assign-custom-exchange-online-role-groups-to-the- princípios de serviço que usam aplicativos

  1. Criando uma função personalizada do Exchange com "Higiene de Transporte" + "Administrador de Segurança"

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

    PS > New-ServicePrincipal -AppId $AadApp.AppId -ServiceId $AadApp.ObjectId -DisplayName "ServicePrincipal para meu aplicativo"

    PS > $SP = Get-ServicePrincipal -Identity "ServicePrincipal para meu aplicativo"

    PS > Add-RoleGroupMember -Identity "<função criada na etapa 1>" -Member $SP.Identity

Sem sorte.

ATUALIZAR Alterar minha função personalizada do Exchange apenas com: -Mailbox Import Export -Mailbox Search -MailboxSearchApplication -Message Tracking -Transport Hygiene -View-Only Configuration -View-Only Destinatários parece funcionar. Vou deixar passar o fim de semana para ver se isso não é mais uma mudança que demora para ser replicada no lado da Microsoft

informação relacionada