4.2 Key Fields in the Sign-In Log
Key Fields in the Sign-In Log
The sign-in log tables contain over 50 columns each. You do not need all of them. In practice, eight fields answer 80% of your investigation questions. Learn these eight cold, and you can triage any sign-in event in under a minute.
Figure 4.2: The six fields shown above, plus MfaDetail and DeviceDetail, cover 80% of your investigation needs.
ResultType — Success or failure
ResultType is a numeric code. Zero means success. Everything else is a failure with a specific reason.
You will see them constantly. Knowing what they mean without looking them up saves minutes per investigation.
| Error Code | Meaning | Investigation significance |
|---|---|---|
0 | Success | The sign-in worked. If from an unfamiliar location, this is a compromise indicator. |
50126 | Invalid credentials | Wrong password. Many from one IP = brute force. Many IPs targeting many users = spray. |
50074 | MFA required, not completed | User or attacker did not finish MFA. Often benign (user cancelled). |
50053 | Account locked | Lockout threshold hit. Follows a burst of 50126 failures. |
53003 | Blocked by conditional access | A CA policy stopped the sign-in. Check which policy in the ConditionalAccessPolicies field. |
The full error code reference is at learn.microsoft.com/en-us/entra/identity-platform/reference-error-codes, but these five account for the vast majority of what you will encounter.
IPAddress and LocationDetails
The IP address and its geolocation tell you where the sign-in came from. Compare against the user’s normal patterns.
| |
This builds a baseline: which IPs and locations does this user normally sign in from? Any sign-in from an IP not in this list is worth investigating.
Investigating a compromise is much faster when you already know the user's normal IPs and locations. Consider running baseline queries proactively for VIP users and high-privilege accounts, and storing the results as a watchlist in Sentinel.
ClientAppUsed — The legacy authentication signal
This field identifies the authentication protocol. Modern authentication (browser, mobile app, desktop app) supports MFA. Legacy protocols do not.
| ClientAppUsed value | Type | MFA support |
|---|---|---|
Browser | Modern | Yes |
Mobile Apps and Desktop clients | Modern | Yes |
Exchange ActiveSync | Legacy | No |
IMAP4 | Legacy | No |
POP3 | Legacy | No |
SMTP | Legacy | No |
Autodiscover | Legacy | No |
After obtaining credentials through phishing, attackers often attempt IMAP or POP3 access to read email without triggering an MFA challenge. A conditional access policy blocking legacy authentication eliminates this entire attack path. If your organisation has not deployed this policy, it is the single highest-impact security improvement you can make.
ConditionalAccessStatus and ConditionalAccessPolicies
ConditionalAccessStatus gives you the overall verdict: success (allowed), failure (blocked), or notApplied (no policies evaluated). The ConditionalAccessPolicies field is a JSON array containing every policy that evaluated, with its individual result.
Parsing the policies array to find the specific blocking policy:
| |
This shows which conditional access policies are doing the most blocking — useful for understanding your security posture and identifying policies that may need tuning.
MfaDetail
Shows whether MFA was satisfied and which method was used (phone call, authenticator app push, FIDO2 key, OTP). Critical for AiTM investigation: if MFA was satisfied but the user says they were not involved, the token was likely captured after MFA completion on a proxy page.
DeviceDetail
Contains the device name, operating system, browser, compliance status, and whether the device is Intune-managed. An unregistered device from an unfamiliar IP is a stronger compromise indicator than an unregistered device from a known corporate network.
Check your understanding
1. ResultType 53003 means the sign-in was blocked. What specifically blocked it?
2. You see a sign-in with ClientAppUsed = "IMAP4" and ResultType = 0. Why is this concerning?
3. How do you find out which specific conditional access policy blocked a sign-in?