Microsoft Graph를 사용하여 활동 로그를 분석하는 방법
Microsoft Entra 보고 API는 일련의 REST API를 통해 데이터에 프로그래밍 방식으로 액세스합니다. 여러 프로그래밍 언어 및 도구에서 이러한 API를 호출할 수 있습니다.
이 문서에서는 Microsoft Graph Explorer 및 Microsoft Graph PowerShell을 사용하여 Microsoft Entra 활동 로그를 분석하는 방법을 설명합니다.
필수 조건
- 연결된 Microsoft Entra ID P1 또는 P2 라이선스가 있는 작업 중인 Microsoft Entra 테넌트입니다.
- 필요한 권한에 동의하려면 권한 있는 역할 관리자가 필요합니다.
Microsoft Graph Explorer를 사용하여 보고서에 액세스
모든 필수 구성 요소를 구성하면 Microsoft Graph에서 활동 로그 쿼리를 실행할 수 있습니다. Microsoft Graph API는 많은 양의 활동 데이터를 끌어오기 위한 목적으로 설계되지 않았습니다. API를 사용하여 많은 양의 활동 데이터를 끌어오면 페이지 매김 및 성능 문제가 발생할 수 있습니다. Microsoft Graph 활동 로그 쿼리에 대한 자세한 내용은 활동 보고서 API 개요를 참조하세요.
Microsoft Graph Explorer 도구를 시작합니다.
프로필을 선택한 다음, 권한 수정을 선택합니다.
다음 필수 권한에 동의합니다.
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
엔드포인트를 사용합니다. 베타 엔드포인트는 변경될 수 있으며 프로덕션 용도에는 권장되지 않습니다.
다음 쿼리를 사용해 보세요.
조건부 액세스가 실패한 로그인 시도의 경우:
- 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
관리 ID 로그인의 경우:
- 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가 아니거나 테넌트에 Premium 라이선스가 없음: 로그인 보고서에 액세스하려면 Microsoft Entra ID P1 또는 P2 라이선스가 필요합니다. 로그인에 액세스하는 동안 이 오류 메시지가 표시되면 Microsoft Entra ID P1 라이선스를 사용하여 테넌트에게 사용이 허가되었는지 확인합니다.
오류: 사용자가 허용된 역할에 없음: API를 사용하여 감사 로그 또는 로그인에 액세스하는 동안 이 오류 메시지가 표시되면 Microsoft Entra 테넌트의 보안 읽기 권한자 또는 보고서 구독자 역할이 계정에 포함되어 있는지 확인합니다.
오류: 애플리케이션에 Microsoft Entra ID '디렉터리 데이터 읽기' 또는 '모든 감사 로그 데이터 읽기' 권한이 없음: 애플리케이션에는 Microsoft Graph를 사용하여 활동 로그에 액세스할 수 있는 AuditLog.Read.All
또는 Directory.Read.All
권한이 있어야 합니다.