如何使用 Microsoft Graph 分析活动日志
Microsoft Entra 报告 API 通过一组 REST API,让你以编程方式访问数据。 可从许多编程语言和工具中调用这些 API。
本文介绍如何使用 Microsoft Graph 浏览器和 Microsoft Graph PowerShell 分析 Microsoft Entra 活动日志。
先决条件
- 一个工作 Microsoft Entra 租户,具有与之关联的 Microsoft Entra P1 或 P2 许可证。
- 要同意所需权限,需要成为特权角色管理员。
使用 Microsoft Graph 浏览器访问报告
配置了所有先决条件后,可以在 Microsoft Graph 中运行活动日志查询。 Microsoft Graph API 不是为拉取大量活动数据而设计的。 使用该 API 拉取大量活动数据可能会导致分页和性能问题。 有关 Microsoft Graph 活动日志查询的更多信息,请参阅活动报告 API 概述。
选择你的配置文件,然后选择“修改权限”。
同意以下所需权限:
AuditLog.Read.All
Directory.Read.All
使用以下查询之一开始使用 Microsoft Graph 访问活动日志:
- GET
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns
- GET
https://graph.microsoft.com/v1.0/auditLogs/provisioning
- GET
微调查询
若要搜索特定活动日志条目,请使用 $filter 和 createdDateTime 查询参数和某个可用的属性。 以下某些查询使用 beta
终结点。 beta 终结点可能会更改,不建议将其用于生产。
请尝试使用以下查询:
对于条件访问失败的登录尝试:
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=conditionalAccessStatus eq 'failure'
- GET
若要查找特定应用程序的登录:
- GET
https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z) and appId eq 'APP ID'
- GET
对于非交互式登录:
- GET
https://graph.microsoft.com/beta/auditLogs/signIns?$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z) and signInEventTypes/any(t: t eq 'nonInteractiveUser')
- GET
对于服务主体登录:
- GET
https://graph.microsoft.com/beta/auditLogs/signIns?$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z) and signInEventTypes/any(t: t eq 'servicePrincipal')
- GET
对于托管标识登录:
- GET
https://graph.microsoft.com/beta/auditLogs/signIns?$filter=(createdDateTime ge 2024-01-13T14:13:32Z and createdDateTime le 2024-01-14T17:43:26Z) and signInEventTypes/any(t: t eq 'managedIdentity')
- GET
获取用户的身份验证方法:
- GET
https://graph.microsoft.com/beta/users/{userObjectId}/authentication/methods
- 需要
UserAuthenticationMethod.Read.All
权限
- GET
查看用户注册详细信息报告:
- GET
https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails
- 需要
UserAuthenticationMethod.Read.All
权限
- GET
有关特定用户的注册详细信息:
- GET
https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails/{userId}
- 需要
UserAuthenticationMethod.Read.All
权限
- GET
相关 API
熟悉标准登录和审核日志后,请尝试浏览以下其他 API:
使用 Microsoft Graph PowerShell 访问报表
可以使用 PowerShell 访问 Microsoft Entra 报告 API。 有关详细信息,请参阅 Microsoft Graph PowerShell 概述。
Microsoft Graph PowerShell cmdlet:
- 审核日志:
Get-MgAuditLogDirectoryAudit
- 登录日志:
Get-MgAuditLogSignIn
- 预配日志:
Get-MgAuditLogProvisioning
- 浏览与报告相关的 Microsoft Graph PowerShell cmdlet 的完整列表。
常见错误
错误:两个租户都不是 B2C 或租户没有高级许可证:访问登录报告需要 Microsoft Entra ID P1 或 P2 许可证。 如果访问登录时看到此错误消息,请确保你的租户已获得 Microsoft Entra ID P1 许可证。
错误:用户没有允许的角色:如果在尝试使用 API 访问审核日志或登录时看到此错误消息,请确保你的帐户属于 Microsoft Entra 租户中的“安全读取者”或“报告读取者”角色。
错误:应用程序缺少 Microsoft Entra ID“读取目录数据”或“读取所有审核日志数据”权限:应用程序必须具有 AuditLog.Read.All
或 Directory.Read.All
权限才能使用 Microsoft Graph 访问活动日志。