JUMP TO SECTIONChoose a lesson section
An incident is a hypothesis until the logs support it.
Microsoft Entra records identity events across different log families. A successful sign-in is not the same as permission to use an app. An audit record is not proof the change was approved. A provisioned account isn't evidence the user can sign in. This guide makes those boundaries practical.
Three core log families. More than one kind of sign-in.
For a focused ticket, start in Microsoft Entra admin center → Entra ID → Monitoring & health, then open Sign-in logs, Audit logs or Provisioning logs. You generally need at least a Reports Reader role, but individual features, log export destinations and advanced reports have separate licensing and role requirements.
Interactive sign-ins
Who signed in, where, to which app—and what happened?User sign-in success, error codes, location/IP, authentication and Conditional Access result.
A successful sign-in doesn't prove the SaaS account exists or the resource grants access.Directory & policy changes
Who changed a user, app, role, group or policy?Logged operation, initiator, target object, outcome, time and change details.
A recorded change does not by itself prove the change was approved or caused a later failure.Provisioning lifecycle
Was a connected application's user or group created or updated?Provisioning job, action, result and source/target mapping or failure information.
Provisioning success or failure is different from interactive SSO success or failure.Workload and non-interactive
Is this a user refresh, a service principal or a managed identity?Different sign-in categories and exported tables, including non-interactive, service principal and managed identity events.
Don't search only interactive SigninLogs when the caller is an unattended workload.Interactive sign-ins, non-interactive user token refreshes, service-principal sign-ins and managed-identity sign-ins have different event sources. A service running without a human won't necessarily show in the interactive user's SigninLogs table. Sign-in visibility and export categories depend on the selected features and environment.
Start narrow. Correlate before you change.
Most identity troubleshooting should begin with a targeted user, application and UTC time. Jumping directly to resetting passwords or disabling a policy can make the problem harder to understand and can reduce protection.
Pin down the symptom
Capture affected identity/object IDs, application, UTC time window, observed error, requester and business impact. Separate authentication, authorization and application-side symptoms.
Select the right log family
Start with sign-in for authentication, audit for changes, provisioning for lifecycle, and workload sign-in categories for automated identities.
Reduce the search window
Filter by time, identity, app, operation and result. Keep event and correlation identifiers where available. Record which table and filters were used.
Test a specific hypothesis
A sign-in is blocked and a policy changed nearby: inspect actual policy evaluation and audit details. Time proximity alone isn't proof.
Validate both outcomes
Verify the intended operation now succeeds and a forbidden operation still fails. Retain approvals and test evidence before closing the ticket.
Correlate audit records with change approvals, actor and target identifiers and the affected sign-in's actual policy evaluation. Correlation IDs can help within a request, but different services often use different event identifiers. Record uncertainty instead of inventing a single incident chain.
Where the evidence lives changes what you can do with it.
Entra activity logs are available natively for a license-dependent retention window. To analyze patterns over longer periods, administrators can configure Diagnostic settings to send selected categories to other destinations. Microsoft documents Security Administrator as the least-privileged Entra role for configuring these settings, with separate destination-side permissions and prerequisites.
Log Analytics workspace
Centralize selected Entra activity tables for KQL, analysis, dashboards and alerts. Good for incident timelines and cross-log investigations.
Requires a suitable workspace, diagnostic categories, access roles, licensing where applicable, retention and cost planning.Azure Storage
Keep selected activity exports for a defined archival or compliance period with storage-tier and lifecycle controls.
Storage isn't a searchable KQL workspace by itself. Protect blob access, define storage lifecycle policies and understand export starts going forward.Azure Event Hubs
Send events to a streaming consumer or external SIEM pipeline that handles ingestion, parsing, monitoring and alerting.
Event Hubs transports events rather than storing a queryable identity analytics history on its own. Plan downstream reliability and costs.Typical setup: create the destination, open Entra ID → Monitoring & health → Diagnostic settings, select activity categories, configure routing and permissions, then generate a known test event and confirm it arrives. Routing does not recreate older records. Estimate ingestion, retention and export costs before enabling a large volume of categories.
Turn log records into an answer.
Azure Monitor Log Analytics uses Kusto Query Language (KQL). Read the query from top to bottom: start with a table, filter using where, choose columns with project, and aggregate with summarize and bin. Each pipeline step transforms the previous result; it isn't a Microsoft Graph permission command or a change to tenant settings.
These queries use Microsoft-documented table names and common fields. The example address is fictitious. Inspect the active workspace schema before adapting queries: fields, ingestion latency and feature-specific tables vary with configuration.
Follow a blocked app sign-in
SigninLogs
| where TimeGenerated >= ago(7d)
| where UserPrincipalName =~ "morgan@northstar.example"
| where AppDisplayName == "Expense Portal"
| project TimeGenerated, UserPrincipalName,
AppDisplayName, ResultType, ConditionalAccessStatus
| order by TimeGenerated descStart with the exact app and identity, then open the sign-in's detailed Conditional Access evaluation in the portal. The email and app are fictional.
Count failed sign-ins by app
SigninLogs
| where TimeGenerated >= ago(7d)
| where ResultType != 0
| summarize Failures=count() by AppDisplayName
| order by Failures descAn aggregate helps reveal patterns, but it doesn't prove an attack or explain one user's policy failure.
Find changes and their actors
AuditLogs
| where TimeGenerated >= ago(7d)
| where OperationName contains "policy"
| extend Actor=tostring(InitiatedBy.user.userPrincipalName)
| project TimeGenerated, Actor, OperationName, Result
| order by TimeGenerated descInitiatedBy and TargetResources are dynamic structures. A service principal may appear under InitiatedBy.app, so don't assume every operation has a user actor.
Summarize provisioning failures
AADProvisioningLogs
| where TimeGenerated >= ago(7d)
| where ResultType == "Failure"
| summarize Failures=count() by JobId, ProvisioningAction
| order by Failures descCheck ResultDescription, provisioning steps and attribute mapping for the affected app. Real tenant schemas should be confirmed in Log Analytics.
Provisioning activity by day
AADProvisioningLogs
| where TimeGenerated >= ago(7d)
| summarize Events=count()
by ProvisioningAction, bin(TimeGenerated, 1d)
| order by TimeGenerated descbin creates time buckets; a summary loses some per-event details. Drill back into raw records to validate specific failures.
Once you understand the query structure, try the KQL Workbench to test it against fictional sign-in and audit evidence.
Prove the table contains the needed data, add a short time filter, then add identity and application filters. Use aggregation only after you have inspected raw events. Re-query the actual event before concluding which sign-in or change caused an incident.
Read the logs. Prove your next step.
Explore three Northstar scenarios involving sign-in failure, policy audit and SaaS provisioning. Choose a grounded KQL example, inspect matching fictional records and select the most defensible investigation action.
Follow the signal. Find the cause.
Why can't Morgan reach Expense Portal?
Support reports that Morgan is blocked from Expense Portal after a security policy change. Start with the exact sign-in result before changing any policy.
SigninLogs
| where TimeGenerated >= datetime(2026-11-05T00:00:00Z)
| project TimeGenerated, UserPrincipalName, AppDisplayName, ResultType, ConditionalAccessStatus
| order by TimeGenerated descShows all four records in this fixed Northstar example.
What is the safest next investigation step?
Good charts reveal questions. They don't close incidents.
Entra workbooks use Azure Monitor to visualize trends such as sign-in health, Conditional Access outcomes, and provisioning issues. Public templates and custom KQL views help administrators compare periods and share repeatable views. Microsoft currently documents Entra P1, a workspace containing the necessary data, and appropriate roles as prerequisites for Entra workbooks.
Identity Secure Score summarizes how closely tenant settings align with Microsoft's security recommendations. It helps prioritize improvement work, but isn't a real-time threat verdict or a pass/fail statement about one account. Evaluate prerequisites and business effects of each recommendation, make an approved change and validate the specific result.
A sign-in succeeded
A token was issued for that recorded request. It doesn't guarantee downstream app assignment, account provisioning, role mapping or resource authorization.
An audit record exists
A logged operation occurred. Review initiator, object ID, target, approval and scope. You still need evidence it caused the user-visible symptom.
The dashboard looks empty
Confirm license and workspace permissions, selected diagnostic categories, ingestion timing, retention window and query filters. A new export setting doesn't backfill old records.
The metric improved
Identity Secure Score reflects alignment with Microsoft's listed recommendations, not confirmation that every account is uncompromised or risk is gone.
Core sign-in and audit logs are available in Entra Free; provisioning logs and some advanced reports depend on paid entitlements. Native log retention, workbook use, Log Analytics charges and destination permissions are separate decisions. Check Microsoft's current documentation before planning production coverage.
Verify the configuration. Keep the investigation grounded.
Microsoft Learn is the source for current field names, role requirements and license details. Use these documents alongside the fictional JoeLearns casework.
Don't just recognize the log—explain the action.
Practice 014 includes 16 cards, 16 explained questions, two Northstar tickets and an independent KQL Workbench: run supported queries, correlate real-looking fictional logs, restore policy scope and validate allowed and denied outcomes.
