如何检查共享邮箱是否需要Microsoft Defender for Office 365许可

本文详细介绍了在Microsoft 365租户中,当Microsoft Defender for Office 365 (MDO) 激活时,如何判断共享邮箱是否需要MDO许可证。文章通过PowerShell脚本分析邮件跟踪日志,检查共享邮箱是否接收了外部邮件,并指导如何避免在许可证上过度支出。

如何使用PowerShell检查共享邮箱是否需要Microsoft Defender for Office 365许可

我花费了大量时间来澄清当Microsoft Defender for Office 365 (MDO) 在Microsoft 365租户中激活时,共享邮箱的许可要求。本质上,一旦为某个用户帐户分配了Microsoft 365或Office 365 E5许可证,MDO就会被激活,并对其策略范围内的所有邮箱提供保护。默认情况下是保护所有邮箱,包括共享邮箱,而每一个“受益于”MDO保护的邮箱都必须获得许可。这是Microsoft对MDO许可条款所做的修改,该条款最初要求为租户中的所有用户邮箱和共享邮箱都配备MDO许可证。

拥有Office 365 E5或Microsoft 365 E5许可证的用户帐户已获得许可,因为这两种许可证所涵盖的服务计划(应用)集合中都包含了MDO计划1(标识符 f20fedf3-f3c3-43c3-8267-2bfdd51c0939)和MDO计划2服务计划(标识符 8e0c0a52-6a6c-4d40-8370-dd62790dcd70)(图1)。

图1:为用户帐户列出的Microsoft Defender for Office 365服务计划

为共享邮箱许可

共享邮箱,或者更准确地说,用于这些邮箱的已禁用的Entra ID帐户,如果它们受到MDO保护,则必须获得许可。租户无需为这些帐户分配许可证。租户只需拥有足够的MDO许可证(产品SKU标识符 3dd6cf57-d688-4eed-ba52-9e40b5468c3eTHREAT_INTELLIGENCE)来满足许可要求即可(产品标识符请参阅此页面)。

为了减少MDO许可证的潜在责任,租户可以排除那些未受益于MDO保护的共享邮箱。例如,组织通常在人员离职时将用户邮箱转换为共享邮箱(为此,非活动邮箱是更好的选择),有些共享邮箱仅用于内部通信,还有些共享邮箱根本不处于活动使用状态。这些类别的共享邮箱无法从威胁处理和其他Microsoft Defender for Office 365功能中受益,因此无需获得许可。

使用PowerShell查找应获得许可的共享邮箱

判断共享邮箱是否需要MDO许可证的一个简单测试是检查这些邮箱是否接收外部电子邮件。根据定义,MDO会在外部电子邮件通过传输管道时对其进行处理,因此任何从未属于租户的域接收到的邮件都是该邮箱受益于MDO的证据。

有两种方法可以检查外部邮件。您可以检查邮箱中是否有来自外部域名的邮件,或者使用Exchange的邮件跟踪日志来分析发往共享邮箱的流量,以隔离任何外部邮件。第二种方法比第一种更简单,因此我采用了后者。其限制在于,Get-MessageTraceV2 cmdlet 检索的数据仅能回溯十天。

使用邮件跟踪日志的一个优势是,只要登录用户拥有Exchange管理员角色,查找共享邮箱并检查每个邮箱的处理过程就可以通过Exchange Online管理模块完成。但当脚本需要检查帐户是否已获得MDO许可时,情况就变得更复杂了。如果您希望将脚本作为计划的Azure Automation任务运行,或允许非Exchange管理员的帐户运行该脚本,情况会更加复杂。

许可证检查可以轻松地使用Microsoft Graph PowerShell SDK完成。该SDK还拥有创建和发送处理结果电子邮件所需的所有cmdlet。要让非特权帐户也能运行脚本,意味着需要使用一个应用程序来同时针对Graph和Exchange Online进行身份验证,以便代码可以以仅应用模式运行。除此之外,该应用必须拥有 Exchange.ManageAsApp 权限才能以应用身份管理Exchange,并且其服务主体必须添加到Exchange管理员角色中。

必须分配给应用的完整应用程序权限集如下:

  • Microsoft GraphUser.Read.All(获取帐户的许可证信息)、Mail.Send(发送电子邮件)和 Domain.Read.All(读取域名信息以查找租户的默认域)。
  • Office 365 Exchange OnlineExchange.ManageAsApp

如果您愿意,可以轻松将脚本转换为Azure Automation runbook运行,或使用委托权限运行(在这种情况下,登录帐户必须是Exchange管理员)。

输出结果是一份报告,列出了在过去十天内接收了外部电子邮件但没有MDO许可证的共享邮箱集合(图2)。

图2:报告需要Microsoft Defender for Office 365许可证的共享邮箱

您可以从Office 365 for IT Pros GitHub存储库下载该脚本。

避免在Microsoft Defender for Office 365许可证上过度支出

一些Microsoft 365租户拥有成千上万个共享邮箱。尽管E3仍然是许多组织的标准配置,但越来越多的租户正在转向使用E5许可证,从而使用Microsoft Defender for Office 365。密切关注潜在的MDO许可责任非常重要,只对那些受益于MDO的邮箱进行许可。希望这个脚本能有所帮助。

需要帮助编写和管理用于Microsoft 365(包括Azure Automation runbooks)的PowerShell脚本吗?获取《使用PowerShell自动化Microsoft 365》电子书,可单独购买或作为Office 365 for IT Pros电子书套装的一部分。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计