当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Microsoft Graph PowerShell 获取 Office 365 用户的 MFA 状态

作者:精品下载站 日期:2024-12-14 08:30:54 浏览:14 分类:玩电脑

使用 Microsoft Graph PowerShell 获取 Office 365 用户的 MFA 状态


是时候告别“Get-MsolUser MFA Status”了。是的!众所周知,微软计划在 2022 年之后弃用 MS Online 和 Azure AD PowerShell 模块。因此,是时候使用 Microsoft Graph PowerShell 模块来获取组织中 Office 365 用户的 MFA 状态了。

如果您喜欢 MS Online 模块,您可以使用我们之前的脚本导出 MFA 状态报告。它使用 Get-MsolUser cmdlet 和“StrongAuthenticationMethods”。您可以使用此报告,直到 Microsoft 弃用它。对于那些热衷于使用 Microsoft Graph 获得 MFA 状态的人来说,让我们开始吧。

如何使用 Microsoft Graph 检查 MFA 状态?

您可以通过 Microsoft Graph API 或 Microsoft Graph PowerShell 查看 Office 365 用户的 MFA 状态。但使用 MS Graph 检索 MFA 状态与 Get-MsolUser cmdlet 不同。

Microsoft Graph 不直接提供 MFA 状态(启用、强制或禁用)。相反,它将显示为用户配置的身份验证方法的列表。您必须根据身份验证方法得出 MFA 状态。我们在博客底部记录了身份验证方法列表。

为了使其更简单,我们通过分析所有挑战和用例创建了一个 PowerShell 脚本。此脚本将帮助您使用 PowerShell 获取所有用户的 MFA 状态和身份验证方法。

脚本下载:GetMFAStatusReport.ps1

脚本亮点:

  • 该脚本导出所有用户的 MFA 状态
  • 您可以根据 MFA 状态过滤结果。即,您可以单独导出启用/禁用 MFA 的用户
  • 将报告导出到 CSV 文件
  • 您可以过滤结果以单独显示许可用户
  • 您只能为允许登录的用户生成 MFA 报告。
  • 还显示通过条件访问安全默认值完成的 MFA 注册。
  • 该脚本对调度程序友好! 因此,您可以轻松自动生成报告。
  • 在您确认后自动安装 Microsoft Graph PowerShell 模块(如果尚未安装)。

导出 Office 365 MFA 状态报告 - 示例输出:

导出的 MFA 报告包含以下属性:

  • 用户名,
  • UPN,
  • 部门,
  • 许可证状态,
  • 登录状态,
  • 身份验证方法,
  • 艺术硕士身份,
  • 外交部电话,
  • Microsoft Authenticator 配置的设备,
  • 第三方验证器信息,
  • 其他 MFA 详细信息。

[玩转系统] 使用 Microsoft Graph PowerShell 获取 Office 365 用户的 MFA 状态

如何执行“MFA状态报告”PowerShell脚本?

方法 1: 默认情况下,该脚本将获取所有 Azure AD 用户的 MFA 状态。您可以使用以下格式来运行脚本。

.\GetMFAStatusReport.ps1

输出文件将存储在当前工作目录中。

方法 2:您可以使用基于证书的身份验证执行此脚本,如下所述。此方法对于调度脚本和获取定期报告非常有用。

.\GetMFAStatusReport.ps1 -TenantId <TenantId> -ClientId <ClientId> -CertificateThumbprint&nbsp <CertThumbprint>

如果您不想投资 CA 证书,您可以生成自签名证书用于内部和测试目的。您可以参阅使用证书连接 MS Graph 博客,以便注册并获取 Azure 应用程序的证书。

方法3:如果您想为多个租户生成MFA报告,您需要断开现有的MS Graph会话并输入另一个租户的凭据。要关闭现有会话,请使用 -CreateSession 参数运行脚本。

.\GetMFAStatusReport.ps1 -CreateSession

如何获得更详细的MFA注册状态报告?

此一体化 PowerShell 脚本允许您生成 5 个以上 Microsoft 365 MFA 状态报告。我在下面列出了最需要的用例。

  • 获取所有用户的 MFA 状态
  • 获取启用 MFA 的用户报告
  • 列出没有 MFA 的 Azure AD 用户
  • 识别许可用户的 MFA 状态
  • 导出启用登录的用户的 MFA 报告(不包括禁用的用户帐户)
  • 无需 MFA 即可查找授权用户
  • 识别没有 MFA 保护的启用登录的用户
  • 查看通过认证方式注册的用户

获取所有 Office 365 用户的 MFA 状态:

由于“密码身份验证”是主要身份验证,因此不被视为多因素身份验证方法。要检查所有用户的MFA注册状态,您可以运行以下脚本。

.\GetMFAStatusReport.ps1

通过参考“身份验证方法”和“MFA状态”属性,您可以识别用户的MFA注册状态。

注意: MS Online 模块无法列出 FIDO2 和 Windows Hello 身份验证等新方法。但 Microsoft Graph 将列出从 FIDO2 到无密码身份验证的身份验证方法。

获取启用 MFA 的用户报告:

要检查 Office 365 中是否启用了 MFA,您可以生成启用了 MFA 的用户报告。您可以使用 -MFAEnabled 开关参数来获取具有 MFA 的用户列表。

.\GetMFAStatusReport.ps1 -MFAEnabled

它将显示“强”和“弱”MFA。如果您想了解 MFA 状态是如何计算的,您可以参考我们底部的文档。

获取 MFA 禁用用户报告:

如果Azure AD帐户仅使用密码身份验证,则很容易受到攻击。要识别没有 MFA 的用户,请使用 -MFADisabled 参数运行脚本。

.\GetMFAStatusReport.ps1 -MFADisabled

该报告将显示没有 MFA 身份验证方法(例如电话身份验证、FIDO2、Windows Hello 企业版和 Microsoft Authenticator 应用)的用户。

识别许可用户的 MFA 状态:

您可以单独导出许可用户的 MFA 注册状态,而不是为所有用户生成 MFA 报告。过滤共享邮箱和前员工的帐户将很有帮助。

.\GetMFAStatusReport.ps1 -LicensedUsersOnly

导出的报告将包含所有许可用户及其 MFA 状态。

为启用登录的用户导出 MFA 报告:

大多数组织会在员工离开组织时禁用其帐户。要获取允许登录的用户的 MFA 状态,请使用 - SignInAllowedUsersOnly 参数执行脚本。

.\GetMFAStatusReport.ps1 -SignInAllowedUsersOnly

查找无需 MFA 的许可用户:

您可以组合一个或多个参数来生成更精细的 MFA 状态报告。要查看 MFA 禁用的许可用户,您可以运行以下脚本。

.\GetMFAStatusReport.ps1 -MFADisabled -LicensedUsersOnly

获取无需 MFA 即可登录的用户:

在没有多重身份验证的情况下登录会导致帐户泄露。在没有 MFA 的情况下识别启用登录的用户是保护您的业务的最简单方法之一。要获取无需 MFA 即可登录的用户列表,请使用以下格式执行脚本。

.\GetMFAStatusReport.ps1 -MFADisabled -SignInAllowedUsersOnly

通过身份验证方法注册用户:

要了解每种身份验证方法注册了多少用户,请使用 Excel 打开报告,然后从“身份验证方法”列中筛选所需的身份验证方法。通过这种方式,您可以获取具有FIDO2身份验证的用户列表、注册无密码身份验证的用户等。

Microsoft Graph 支持的身份验证方法列表

您可以参考下表来了解有关每种身份验证方法的更多信息。

  1. PasswordAuthenticationMethod - 它是主要的默认身份验证方法。
  2. PhoneAuthenticationMethod - 用户可以注册电话(短信或语音通话)进行身份验证。
  3. FIDO2AuthenticationMethod - 用户可以使用 FIDO2 安全密钥登录 Microsoft 365。
  4. MicrosoftAuthenticatorAuthenticationMethod - 借助 Microsoft Authenticator 应用,用户可以通过 Android 和 iOS 进行身份验证。
  5. PasswordlessMicrosoftAuthenticatorAuthenticationMethod(已弃用)- 用户可以通过 Microsoft Authenticator 应用以无密码方式进行身份验证。
  6. EmailAuthenticationMethod - 电子邮件身份验证可用于自助服务密码重置 (SSPR)。
  7. WindowsHelloForBusinessAuthenticationMethod - Windows 使用 Windows Hello 对用户进行身份验证。它是无密码身份验证方法之一。
  8. TemporaryAccessPassAuthenticationMethod - 临时访问通行证是用于身份验证的有时间限制的密码。
  9. SoftwareOathAuthenticationMethod - 当用户使用第三方身份验证器应用或支持 MFA OATH 规范的应用程序时。

MFA 身份是如何计算的?

根据可用身份验证方法的安全考虑,MFA 状态分为三类:强、弱和禁用。

  • Windows Hello 企业版、Microsoft Authenticator 应用、FIDO2 安全密钥和电话身份验证 - 身份验证方法。
  • 由于 OATH 软件令牌使用第 3 方验证器应用程序,因此它被认为
  • 电子邮件身份验证仅用于 SSPR。因此,它被视为已禁用
  • 密码身份验证是主要身份验证。因此,仅进行密码身份验证的用户将被视为已禁用 MFA。

注意: 当用户第一次使用特定身份验证方法时,该身份验证方法将被添加到帐户使用的身份验证方法列表中。

通过 Office 365 中的 MFA 审核检测安全威胁:

监控 MFA 登录可以深入了解用户行为,并帮助识别可能表明安全风险的任何趋势或模式。例如,MFA 登录失败的突然激增可能表明网络钓鱼攻击或身份验证过程中存在漏洞。通过监控 MFA 登录,您可以检测并响应潜在的安全威胁,例如未经授权的访问尝试或欺诈。但 Microsoft 不提供内置报告来以用户友好的方式识别 MFA 登录失败。

如果您需要此类报告,可以尝试 AdminDroid Microsoft 365 报告工具。 AdminDroid 提供以下 MFA 报告,

  • 基于状态的 MFA 登录

    • 登录未能通过 MFA
  • 所有成功的 MFA 登录
  • 基于身份验证方法的 MFA 登录

    • 通过短信的 MFA 登录
  • 通过移动应用程序通知进行 MFA 登录
  • 通过手机应用通知进行 MFA 登录
  • 通过电话登录 MFA
  • 基于身份验证方法的组织登录计数摘要报告
  • MFA 配置报告

    • 通过条件访问配置的 MFA
  • 具有 MFA 的用户
  • 没有 MFA 的用户
  • 启用 MFA 的用户
  • MFA 禁用用户
  • MFA 激活的用户
  • MFA 未激活用户
  • MFA 设备详细信息
  • 此外,AdminDroid 还提供1600+预构建报告和20 个具有视觉吸引力的智能仪表板,让您一目了然地了解您的 Office 365 环境。该工具提供有关 Office 365 报告、审计、分析、使用统计、安全性和合规性等的报告。

    [玩转系统] 使用 Microsoft Graph PowerShell 获取 Office 365 用户的 MFA 状态

    [玩转系统] 使用 Microsoft Graph PowerShell 获取 Office 365 用户的 MFA 状态

    此外,AdminDroid 还提供100 多个免费报告和多个仪表板。这些报告涵盖各个方面,例如用户信息、许可证、组详细信息、组成员、设备、登录活动、密码更改、许可证更改等。如果您正在寻找 Azure AD 报告和审核解决方案,可以尝试 AdminDroid 的免费 Office 365 报告工具来亲自体验其功能。

    我希望这篇博客将帮助您使用 Microsoft Graph PowerShell 获得 MFA 状态,并有效地监控身份验证方法的使用情况。

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯