Microsoft Graph를 사용하여 활동 로그를 분석하는 방법

Microsoft Entra 보고 API는 일련의 REST API를 통해 데이터에 프로그래밍 방식으로 액세스합니다. 여러 프로그래밍 언어 및 도구에서 이러한 API를 호출할 수 있습니다. Microsoft Graph API는 많은 양의 활동 데이터를 끌어당기도록 설계되지 않았습니다. API를 사용하여 많은 양의 활동 데이터를 끌어올 경우 페이지 매김 및 성능 문제가 발생할 수 있습니다.

이 문서에서는 Microsoft Graph Explorer 및 Microsoft Graph PowerShell을 사용하여 Microsoft Entra 활동 로그를 분석하는 방법을 설명합니다.

필수 조건

  • 라이선스 및 역할 요구 사항은 Microsoft Entra 모니터링 및 상태 라이선스를 참조하세요.
  • 필요한 권한에 동의하려면 Global 관리istrator필요합니다.

Microsoft Graph API를 요청하려면 먼저 다음을 수행해야 합니다.

Microsoft Graph Explorer를 사용하여 보고서에 액세스

모든 필수 구성 요소를 구성하면 Microsoft Graph에서 활동 로그 쿼리를 실행할 수 있습니다. 활동 로그에 대한 Microsoft Graph 쿼리에 대한 자세한 내용은 활동 보고서 API 개요를 참조하세요.

  1. Microsoft Graph Explorer 도구를 시작합니다.

  2. 프로필을 선택한 다음 권한 수정을 선택합니다.

  3. 다음 필수 권한에 동의합니다.

    • AuditLog.Read.All
    • Directory.Read.All
  4. 다음 쿼리 중 하나를 사용하여 활동 로그에 액세스하기 위해 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

    Microsoft Graph의 활동 로그 GET 쿼리 스크린샷

쿼리 미세 조정

특정 활동 로그 항목을 검색하려면 사용 가능한 속성 중 하나와 함께 $filter 및 createdDateTime 쿼리 매개 변수를 사용합니다. 다음 쿼리 중 일부는 엔드포인트를 beta 사용합니다. 베타 엔드포인트는 변경될 수 있으며 프로덕션 용도에는 권장되지 않습니다.

다음 쿼리를 사용해 보세요.

  • 조건부 액세스가 실패한 로그인 시도의 경우:

    • GET https://graph.microsoft.com/v1.0/auditLogs/signIns?&$filter=conditionalAccessStatus eq 'failure'
  • 특정 애플리케이션에 대한 로그인을 찾으려면 다음을 수행합니다.

    • 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 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 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')
  • 관리 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 https://graph.microsoft.com/beta/users/{userObjectId}/authentication/methods
    • UserAuthenticationMethod.Read.All 권한이 필요합니다.
  • 사용자 등록 세부 정보 보고서를 보려면 다음을 수행합니다.

    • GET https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails
    • UserAuthenticationMethod.Read.All 권한이 필요합니다.
  • 특정 사용자의 등록 세부 정보:

    • GET https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails/{userId}
    • UserAuthenticationMethod.Read.All 권한이 필요합니다.

표준 로그인 및 감사 로그에 익숙해지면 다음 다른 API를 살펴보세요.

Microsoft Graph PowerShell을 사용하여 보고서 액세스

PowerShell을 사용하여 Microsoft Entra Reporting API에 액세스할 수 있습니다. 자세한 내용은 Microsoft Graph PowerShell 개요를 참조하세요.

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.AllDirectory.Read.All .

다음 단계