Microsoft Entra 관리 센터에서 Identity → Monitoring & health → 로그인 로그을 열고 필터를 설정한 후 다운로드 → JSON을 선택합니다. 더 큰 데이터나 스크립트 기반의 가져오기를 위해서는 Microsoft Graph: GET /auditLogs/signIns를 사용하세요. 어떤 경우든지 여전히 유지되는 내용만 얻을 수 있습니다: Entra ID Free의 경우 7일, P1 또는 P2의 경우 30일.
로그인 로그는 누가 인증했는지, 어디서, 어떤 앱에 대해, 및 MFA 및 조건부 액세스가 적용되었는지를 보여줍니다. ID 기반의 공격에서 이것이 이야기의 대부분을 차지합니다. Prime Core는 113개의 MITRE ATT&CK 기법에 매핑된 Entra ID 로그인 데이터에 대한 170개의 감지를 가지고 있습니다. 그 중에는 패스워드 스프레이(T1110.003), MFA 피로(T1621) 및 도난당한 클라우드 자격 증명으로의 로그인(T1078.004)이 포함됩니다.
시작하기 전에
보존 기간이 짧습니다. 찾고 있는 활동이 7일 또는 30일보다 오래된 경우, 포털 및 Graph에 데이터가 없을 수 있습니다. 유일하게 남아있을 수 있는 곳은 진단 설정이 로그인 로그를 보내는 곳입니다: Log Analytics 워크스페이스, Microsoft Sentinel 또는 저장소 계정입니다. 해당 경로에 대한 정보는 [Microsoft Sentinel 내보내기 가이드]를 참조하세요.
역할. Reports Reader는 로그인 로그를 읽을 수 있는 가장 낮은 권한의 역할입니다. Security Reader와 Global Reader도 사용 가능합니다.
로그인은 네 가지 유형이 있습니다. 대화형 사용자, 비대화형 사용자, 서비스 주요 및 관리 ID는 각각 포털에 별도의 탭을 가집니다. 토큰 재생 및 리프레시 토큰 남용은 비대화형에 주로 나타나며, 사람들이 내보내는 것을 잊습니다.
옵션 1: 포털에서 다운로드
- 로그인 로그로 이동 한 후 탭을 선택하세요(대화형으로 시작한 후 비대화형으로 이동). and pick the tab (start with interactive, then non-interactive).
- Set 날짜 및 기타 필터(사용자, 애플리케이션, 상태)를 설정하세요.
- 다운로드 를 선택한 후, JSON.
을 선택하세요. 포털의 다운로드에는 포함되는 데이터의 최대 수가 제한됩니다. [확인: 현재 제한 확인]. 큰 범위의 경우 일별로 분할하거나 Graph를 사용하세요.
옵션 2: Microsoft Graph PowerShell
이 방법은 원시 API JSON을 가져오며 페이징을 따라가고, 각 라인마다 하나의 로그인 정보를 작성합니다:
Connect-MgGraph -Scopes "AuditLog.Read.All"
$uri = "https://graph.microsoft.com/v1.0/auditLogs/signIns?`$filter=createdDateTime ge 2026-10-19T00:00:00Z and createdDateTime lt 2026-10-20T00:00:00Z"
do {
$page = Invoke-MgGraphRequest -Method GET -Uri $uri -OutputType Json | ConvertFrom-Json
$page.value | ForEach-Object { $_ | ConvertTo-Json -Depth 10 -Compress } | Add-Content signins_1019.jsonl
$uri = $page.'@odata.nextLink'
} while ($uri)
v1.0 엔드포인트는 대화형 로그인을 반환합니다. 비대화형 및 서비스 주요 로그인은 signInEventTypes 필터가 있는 베타 엔드포인트가 필요합니다. API를 통한 로그인 읽기는 테넌트의 라이선스 등급에 따라 달라집니다.
타임스탬프는 모두 UTC입니다.
찾아야 할 것
| 필드 또는 값 | 알려주는 것 |
|---|---|
| status.errorCode 50126 | 잘못된 사용자 이름 또는 비밀번호. 여러 사용자에서 이러한 오류가 많으면 스프레이입니다. |
| status.errorCode 50053 | 스마트 잠금으로 인해 계정이 잠겼습니다 |
| status.errorCode 500121 | MFA 실패 또는 거부; 여기서의 폭발적인 증가는 MFA 피로 |
| clientAppUsed = IMAP, POP, SMTP, “기타 클라이언트” | MFA를 건너뛰는 이전 인증 방법 |
| conditionalAccessStatus | CA가 적용되었는지, 통과했는지 또는 실패했는지 |
| riskLevelDuringSignIn, 위치, ipAddress | 위험하거나 익숙하지 않은 원본 |
멈춰야 할 패턴: 하나의 IP 범위에서 여러 계정에 걸쳐 발생하는 50126 오류 후 성공적인 로그인.
업로드, 정리 및 LogTotal에서 검토
- 업로드. 열기 logtotal.com 에 JSON 파일을 드롭하세요.
- 정리. [what gets masked: UPNs, display names, IPs, device names, tenant and object IDs]. Look it over before you continue.
- 검토.
문제가 발생할 때
| 증상 | 가능한 원인 | Fix |
|---|---|---|
| 일주일 또는 한 달보다 오래된 데이터가 없음 | 귀하의 라이선스 등급에 따른 보존 | 진단 설정이 켜져있는 경우 Log Analytics, Sentinel 또는 저장소 확인 |
| Graph returns 403 | AuditLog.Read.All 동의, 역할 또는 라이선스 누락 | 동의를 부여하세요; 역할 및 테넌트 라이선스를 확인하세요 |
| 내보내기에는 대화형 로그인만 포함됨 | 다른 유형은 별도의 탭이나 베타 Graph에 존재 | 각 탭을 내보내세요; 베타 엔드포인트 사용 |
| 다운로드에는 포털에 표시된 것보다 더 적은 기록이 포함됨 | 포털 다운로드 제한 | 일별로 분할하거나 Graph 사용 |
FAQ
Entra 감사 로그는?
그것들은 다른 로그입니다: 새로운 사용자, 역할 할당 및 앱 동의와 같은 디렉터리 변경 사항. 같은 포털 영역, 감사 로그입니다. Graph에서는 /auditLogs/directoryAudits입니다. 사건이 발생했을 때 일반적으로 둘 다 필요합니다.
Sentinel에서 로그인 데이터를 받을 수 있나요?
예, Entra ID 커넥터가 켜져 있다면 가능합니다: SigninLogs 및 AADNonInteractiveUserSignInLogs 테이블에 있으며, 워크스페이스가 갖고 있는 보존에 따라 달라집니다.