Entra IDHow-to

Test before you enforce: Conditional Access What If and report-only mode

Use report-only mode, the sign-in logs, the insights workbook and the What If tool to prove a Conditional Access policy behaves as expected before you turn it on.

A Conditional Access policy that's wrong by one condition can lock out a department, or your own admins. Microsoft Entra ID gives you two safety nets: report-only mode, which evaluates a policy against real sign-ins without enforcing it, and the What If tool, which simulates a single sign-in on demand. In this post I'll combine them into a repeatable rollout routine.

How this guide is organised: Prerequisites → Step-by-step → Verify → Tips & gotchasFlow diagram of the article's sections in reading order: 1. Prerequisites. 2. Step-by-step (5 steps: Create the policy in report-only; Read the results per sign-in; Measure impact across the tenant; Simulate edge cases with What If; Roll out in stages). 3. Verify. 4. Tips & gotchas. Toolbox: Conditional Access › Policies, Policies › What If, reportOnlyInterrupted, *.onmicrosoft.com.1Prerequisites2Step-by-step3Verify4Tips & gotchas1Create the policy inreport-only2Read the resultsper sign-in3Measure impactacross the tenant4Simulate edgecases with What If5Roll out in stagesTOOLBOXConditional Access › PoliciesPolicies › What IfreportOnlyInterrupted*.onmicrosoft.comHow this guide is organised: Prerequisites → Step-by-step → Verify → Tips & gotchasFlow diagram of the article's sections in reading order: 1. Prerequisites. 2. Step-by-step (5 steps: Create the policy in report-only; Read the results per sign-in; Measure impact across the tenant; Simulate edge cases with What If; Roll out in stages). 3. Verify. 4. Tips & gotchas. Toolbox: Conditional Access › Policies, Policies › What If, reportOnlyInterrupted, *.onmicrosoft.com.1Prerequisites2Step-by-step1Create the policy in report-only2Read the results per sign-in3Measure impact across the tenant4Simulate edge cases with What If5Roll out in stages3Verify4Tips & gotchasTOOLBOXConditional Access › PoliciesPolicies › What IfreportOnlyInterrupted*.onmicrosoft.com
At a glance: how this guide is organised · 5 steps · 4 key settings and tools

Prerequisites#

  • Microsoft Entra ID P1 for Conditional Access. You need Conditional Access Administrator to change policies; Security Reader is enough to review results.
  • For the insights and reporting workbook: a Log Analytics workspace that receives your sign-in logs, plus Security Reader and Log Analytics workspace Contributor access.
  • At least two emergency-access accounts, excluded before you build anything (see the tips at the end).

Step 1: Create the policy in report-only#

Build the policy as usual in Entra ID › Conditional Access › Policies, exclude your emergency-access accounts, and set Enable policy to Report-only. In Microsoft Graph this state is enabledForReportingButNotEnforced. The policy is now evaluated at every matching sign-in, but its grant and session controls aren't enforced: nobody is blocked or prompted for MFA because of it.

Watch out: report-only policies that require a compliant device can still prompt users on macOS, iOS and Android to select a device certificate, repeatedly, until the device is compliant. Exclude those platforms from report-only compliance policies. Policies that target user actions, such as registering security information, can't run in report-only at all.

Step 2: Read the results per sign-in#

In Entra ID › Monitoring & health › Sign-in logs, open a sign-in and select the Report-only tab. Each report-only policy shows one of four results:

ResultWhat it tells you
Report-only: SuccessConditions matched and the controls were already satisfied, for example by an existing MFA claim or a compliant device.
Report-only: FailureConditions matched but a non-interactive control wasn't satisfied. When enforced, this sign-in would be blocked.
Report-only: User action requiredThe user would have been prompted (MFA, terms of use), so the final outcome is unknown.
Report-only: Not appliedConditions didn't match, for example an excluded user or location.

Review non-interactive sign-ins too, because desktop and mobile apps refresh their tokens there.

Step 3: Measure impact across the tenant#

  • Policy impact (preview): for Security Reader and above, a snapshot of the potential impact on interactive sign-ins over the last 24 hours, 7 days or month, with sample sign-ins.
  • Insights and reporting workbook: go to Entra ID › Conditional Access › Insights and reporting, select the report-only policy and a time range (up to 90 days of streamed data), and read the Success, Failure, User action required and Not applied tiles. Breakdowns cover device platform, client app, location, application and more.

For custom questions, query the workspace directly. This lists who would have been blocked by report-only policies in the past week:

KQL
SigninLogs
| where TimeGenerated > ago(7d)
| mv-expand CAPolicy = ConditionalAccessPolicies
| where tostring(CAPolicy.result) == "reportOnlyFailure"
| summarize SignIns = count() by Policy = tostring(CAPolicy.displayName), UserPrincipalName, AppDisplayName
| order by SignIns desc

Change the filter to reportOnlyInterrupted to list sign-ins that would have needed user action.

Step 4: Simulate edge cases with What If#

Report-only shows what happened; What If answers "what would happen if…". Open Entra ID › Conditional Access › Policies › What If. Identity, target resource, device platform and client app are required; add the IP address, country, risk levels and any other condition your policies use. The report lists the policies that would apply, with the grant and session controls each requires, and the ones that wouldn't, showing the first condition that didn't match.

  • Only enabled and report-only policies are evaluated.
  • Fill in every condition your policies depend on. The tool runs on the What If evaluation API, and a condition you leave empty can't be matched.
  • Choose the specific app (its application ID) rather than a group such as Office 365.
  • Service dependencies aren't simulated: testing Teams doesn't include policies that apply to Exchange Online.

Step 5: Roll out in stages#

  1. Leave the policy in report-only long enough to cover a full business cycle, including monthly or occasional processes.
  2. Investigate every Failure and User action required result, fix the conditions or exclusions, and re-check.
  3. Switch the policy to On for a pilot group and watch the sign-in logs for failures.
  4. Expand in waves until it covers the full scope.
  5. For changes to an enforced policy, create a report-only copy with the change, compare the two, then update the original and delete the copy.

Verify#

  • After enforcement, the policy appears on the sign-in's Conditional Access tab with Success or Failure instead of a report-only result.
  • A What If run for an emergency-access account lists the policy among those that don't apply.
  • In the workbook, the policy now appears in the Enabled group rather than Report-only.

Tips & gotchas#

  • Emergency access: keep two or more cloud-only accounts on the *.onmicrosoft.com domain, protected with a passkey (FIDO2) or certificate-based authentication, and exclude them from every enforced policy that blocks or restricts sign-in. Report-only policies don't need the exclusion, but adding it from day one means it's already there at enforcement. Monitor their sign-in and audit logs.
  • Don't create block or compliant-device policies for all users and all resources without exclusions; that's how admins lock themselves out.
  • What If doesn't check whether a real device is compliant or which methods a user has registered. Confirm those in the sign-in logs.

References#

Written and checked against current Microsoft Learn documentation. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

OE
Written by

Omer Eltayeb

Independent Microsoft Intune consultant in Cairo, Egypt, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Microsoft Entra ID, Microsoft Defender and Exchange Online with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)