使用 Exchange Online Powershell 将特定 Exchange 角色分配给仅限应用程序的身份验证

使用 Exchange Online Powershell 将特定 Exchange 角色分配给仅限应用程序的身份验证

我需要通过无人值守连接使用 ExchangeOnline Powershell 模块中的以下 cmdlet。

  • 获取隔离消息
  • 预览隔离消息
  • 释放隔离消息
  • 出口检疫信息
  1. 继此第一份文档之后https://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps,我使用自签名证书创建了一个 Azure App 注册,分配了“Exchange.ManageAsApp”API 权限,然后授予同意。

  2. 然后我创建了一个 Azure 安全组并将我的应用程序添加为该组的成员。

  3. 然后,我按照以下文档在 Microsoft 365 Defender 门户中创建了一个自定义角色: https://learn.microsoft.com/en-us/defender-for-identity/role-groups

  4. 在这个角色中我添加了以下自定义权限:

  • 电子邮件隔离(管理)
  • 电子邮件高级操作(管理)和只读原始数据(电子邮件和协作)
  1. 当然,我将在步骤 2 中创建的组分配给了这个新角色

所有这些都允许我使用前 2 个 cmdlet 而不会出现任何问题,但我无法访问出口检疫信息释放隔离消息

我们可以通过这些命令列出此 cmdlet 所需的权限(从那里: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

我尝试了最后这个命令:

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

如果我运行,我可以看到我的应用程序成员:

PS > Get-RoleGroupMember "Hygiene Management"

但我仍然无法访问出口检疫信息释放隔离消息命令。

更新

我尝试以下https://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps#assign-custom-exchange-online-role-groups-to-the-application-using-service-principals

  1. 使用“传输卫生”+“安全管理员”创建自定义 Exchange 角色

  2. PS> $ AadApp = Get-AzureADServicePrincipal -SearchString“”

    PS> New-ServicePrincipal -AppId $AadApp.AppId -ServiceId $AadApp.ObjectId -DisplayName“我的应用程序的ServicePrincipal”

    PS > $SP = Get-ServicePrincipal -Identity “我的应用程序的 ServicePrincipal”

    PS > Add-RoleGroupMember -Identity "<角色创建步骤 1>" -Member $SP.Identity

没有任何运气。

更新 仅使用以下方式更改我的自定义 Exchange 角色:-邮箱导入导出 -邮箱搜索 -邮箱搜索应用程序 -消息跟踪 -传输卫生 -仅查看配置 -仅查看收件人似乎有效。我会在周末看看这是否是另一个需要时间在微软端复制的更改

相关内容