如何使用 Microsoft Graph 分析活動記錄
Microsoft Entra 報告 API 可讓您透過一組 REST API 以程式設計方式存取資料。 您可以從各種程式設計語言和工具呼叫這些 API。
本文說明如何使用 Microsoft Graph Explorer 和 Microsoft Graph PowerShell 來分析 Microsoft Entra 活動記錄。
必要條件
- 工作Microsoft Entra 租使用者,具有與其相關聯的Microsoft Entra ID 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 cmdlets:
- 稽核記錄:
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 'Read directory data' 或 'Read all audit log data' 權限:應用程式必須具有 AuditLog.Read.All
或 Directory.Read.All
權限,才能使用 Microsoft Graph 來存取活動記錄。