如何审核Azure用户MFA状态?Policy定义无法定位用户的解决方案
解决方案:排查Azure AD中未启用MFA的用户
首先明确:Azure Policy(ARM资源策略)无法直接定位Azure AD用户的MFA状态,因为用户属于Azure AD身份管理范畴,而非Azure资源管理器(ARM)管辖的资源对象。你之前修改的“强制MFA策略”属于Azure AD条件访问策略,并非Azure Policy,这是两类不同的机制,所以无法通过它实现用户排查需求。
以下是可行的几种方案:
方案1:利用条件访问“仅报告”模式排查
- 创建一个条件访问策略,设置为“仅报告”模式,不会强制用户启用MFA,但会记录哪些用户未满足MFA要求:
- 进入Azure AD > 安全 > 条件访问 > 新建策略
- 分配目标用户/组(可选择所有用户)
- 云应用/操作选择“所有云应用”
- 访问控制选择“授予”,勾选“要求多重身份验证”
- 启用策略设为“仅报告”,保存策略
- 前往“条件访问 > 报告 > 见解与报告”,查看“未满足要求的用户”列表,即为未启用MFA的用户
方案2:用Microsoft Graph API+脚本自动化排查
通过Graph API直接查询用户的MFA方法状态,筛选出未配置任何MFA方法的用户,可结合PowerShell或自动化工具定期执行:
- PowerShell示例脚本:
# 连接Microsoft Graph Connect-MgGraph -Scopes User.Read.All # 获取所有用户及MFA方法信息 $allUsers = Get-MgUser -All -Property Id, DisplayName, UserPrincipalName, MfaMethods # 筛选未配置MFA的用户 $usersWithoutMFA = $allUsers | Where-Object { $_.MfaMethods.Count -eq 0 } # 导出结果到CSV $usersWithoutMFA | Select-Object DisplayName, UserPrincipalName | Export-Csv -Path "./UsersWithoutMFA.csv" -NoTypeInformation
方案3:借助Azure AD Identity Protection
如果你的租户已启用Azure AD Premium P1/P2,可利用Identity Protection的报告功能:
- 进入Azure AD > 安全 > Identity Protection
- 查看“风险用户”或“漏洞”报告,其中包含未启用MFA的用户统计,还可配置自动提醒或补救措施
内容的提问来源于stack exchange,提问作者Thousif BakBak
相关产品推荐
相关产品推荐

