AccessPilot Knowledge Base

Contents › Method

How to review a Conditional Access policy

A repeatable review order, severity definitions, and the findings that recur most.
Published by Urbannerd Consulting · Reviewed 2026-07-29

Policy review rubric

Applied when a user pastes a policy, a policy export or a description of one. Deterministic

order so two reviews of the same policy produce the same findings.

Accepted input formats

FormatHandling
Graph conditionalAccessPolicy JSONPreferred. Full fidelity. Parse against
Portal screenshot described in proseWorkable. Confirm the fields the description omits before reviewing
A list of settings typed by the userWorkable. Explicitly list what was not stated — silence is not "not configured"
"Require MFA for all users" (one line)Treat as an intent, not a policy. Ask for the actual configuration or review the intent and say so

The silence rule: an unstated field is unknown, never empty. A policy description

that does not mention exclusions does not mean there are none. The agent must say

"exclusions not stated — if there are none, this is Critical" rather than assuming either way.

Review order

Work these in sequence. Do not skip ahead — order is what makes the review reproducible.

1. State

state: enabled / disabled / enabledForReportingButNotEnforced. Everything below is

interpreted differently depending on this. A dangerous policy in report-only is a

finding, not an incident.

2. Emergency access

Are break-glass accounts excluded? If not stated, ask. If genuinely absent → Critical,

stop and lead with it. If excluded via a group, is the group role-assignable or PIM-managed?

3. User scope

includeUsers / excludeUsers / includeGroups / excludeGroups / includeRoles /

excludeRoles / includeGuestsOrExternalUsers.

accounts, shared mailboxes?

4. Resource scope

includeApplications / excludeApplications / includeUserActions /

includeAuthenticationContextClassReferences.

leaves admin portals and Azure Service Management reachable.

5. Conditions

clientAppTypes, platforms, locations, signInRiskLevels, userRiskLevels,

devices/device filter, authenticationFlows, insiderRiskLevels.

6. Grant controls — the highest-yield check

operator (AND / OR) and builtInControls, authenticationStrength, termsOfUse.

This is where the most valuable findings come from. Check specifically:

MFA OR compliant device means a compliant device needs no MFA.

7. Session controls

signInFrequency, persistentBrowser, applicationEnforcedRestrictions,

cloudAppSecurity, continuousAccessEvaluation, secureSignInSession,

disableResilienceDefaults.

during an Entra outage. Rarely intended.

8. Interaction with the rest of the estate

anywhere wins.

9. Licensing

Does anything here require P2, Intune or Defender for Cloud Apps that the stated licence

does not include? See .

10. Hygiene

Naming, description, ownership, review date.

Severity definitions

SeverityMeaning
CriticalLockout path, or the policy provides materially less protection than it appears to
HighSignificant population blocked, or a real bypass exists
MediumWeakened control, operational complexity, troubleshooting difficulty
LowHygiene, naming, documentation

Standard findings library

Recurring findings with their standard severity. Not exhaustive — but if one of these

applies, use this severity for consistency.

FindingSeverityWhy
Break-glass accounts not excludedCriticalTenant lockout, no in-product recovery
Break-glass exclusion via non-role-assignable groupCriticalGroup Administrators can bypass CA or silently remove the exclusion
MFA OR compliant device in one policyCriticalCompliant device satisfies the policy without MFA — protection is illusory
Block, All users, All resources, no exclusionsCriticalTotal lockout
Phishing-resistant strength on admins with no pre-registrationCriticalRegistration deadlock
MFA policy scoped to selected apps, not All resourcesHighAdmin portals and Azure Service Management API remain reachable
Enforced directly, no report-only periodHighUnmeasured blast radius
All administrators excludedHighInverts the security model
Device compliance enforced, enrolment coverage unknownHighMass block of unenrolled devices
Register-security-info policy with no TAP pathHighNew hires cannot onboard
Legacy auth blocked with no MFP surveyHighScan-to-email and LOB integrations fail
Risk conditions used without P2 across the scoped populationHighPolicy silently does not apply as intended
Guests in scope of device compliance, not excludedHighPartner access outage
Permanent service account exclusion, no owner or dateHighBecomes a standing bypass
Duplicate/overlapping MFA policiesMediumTroubleshooting complexity; unclear which applies
Token protection applied to browser pathsMediumUnsupported — breaks
Sign-in frequency shorter than neededMediumPrompt fatigue increases phishing susceptibility
disableResilienceDefaults = trueMediumRemoves outage backstop
Role-scoped policy in PIM tenant, applicability misunderstoodMediumApplies only during activation
No policy description or ownerLowOperational confusion
Inconsistent namingLowHard to reason about the estate

Output shape

  1. Policy summary — restate what it does in one paragraph, so the user can confirm the

agent read it correctly.

  1. Lockout risk — rating and mechanism (see 03-lockout-risk-model.md).
  2. Findings table — severity / finding / risk / recommendation, ordered most severe first.
  3. Licensing dependencies — including what needs verification.
  4. Remediation plan — in execution order, not severity order. The order you do things

in is rarely the order of severity.

  1. What could not be assessed — fields not supplied, and what tenant data would settle them.

Section 6 is not optional. A review that does not say what it could not see is overclaiming.