Security & identity

Conditional Access All resources exclusions: test the 2026 change

Since June 2026, Conditional Access enforces All resources policies with exclusions on sign-ins that request only baseline scopes. Find the affected apps, test them and choose an enforcement setting.

11 min read
On this page

Microsoft Entra Conditional Access now enforces policies that target All resources and have one or more resource exclusions on sign-ins that request only baseline scopes, such as openid, profile or User.Read. Those sign-ins used to skip the policy entirely; now they are evaluated as directory access against Windows Azure Active Directory, so users of apps like Azure CLI, the Visual Studio Code desktop client or an excluded web app that only reads the user profile can suddenly be asked for MFA, a compliant device or be blocked. To find out which apps break, list your affected policies, use the Customize behavior setting with a placeholder application to log the affected sign-ins, test those apps, and then choose between full enforcement and a targeted exception.

Who this is for and what you will have at the end

This guide is for Conditional Access administrators in tenants that use All resources policies with exclusions, typically a "require compliant device for all resources except X" or "block everything except Y" design. It is also for help desk leads investigating new MFA or device prompts that appeared after June 2026.

At the end you will have:

  • A list of the policies that the change touches.
  • A sign-in-log based list of the client applications that request only baseline scopes.
  • A decision for each app: accept enforcement, change the app's scopes, or keep the legacy behavior with a placeholder exclusion.
  • The tenant-wide setting chosen deliberately rather than by default.

What changed and when

ItemDetail
AnnouncementMessage center MC1223829, first published 29 January 2026
Enforcement startRolled out progressively from 15 June 2026 (previously announced for 13 May 2026)
DefaultApplied automatically if you made no choice in the Baseline scopes settings
Settings pagehttps://aka.ms/BaselineScopesSettingsUX (US Government: https://aka.ms/BaselineScopesSettingsUX-gov)
Evaluated resourceWindows Azure Active Directory (Azure AD Graph), app ID 00000002-0000-0000-c000-000000000000

The message center post was addressed to tenants where Microsoft's telemetry found at least one All resources policy with one or more resource exclusions.

The baseline scopes

  • OIDC scopes: email, offline_access, openid, profile
  • Baseline directory scopes: User.Read, User.Read.All, User.ReadBasic.All, People.Read, People.Read.All, GroupMember.Read.All, Member.Read.Hidden

What is now enforced, and what isn't

ScenarioBeforeAfter
Public client (desktop or mobile app) requesting only baseline scopes, for example Visual Studio Code (openid, profile) or Azure CLI (User.Read)Policy skippedPolicy enforced against Windows Azure Active Directory
Confidential client (web app) excluded from the policy, requesting only baseline directory scopes such as User.Read and People.ReadPolicy skippedPolicy enforced
Confidential client excluded from the policy, requesting only OIDC scopesPolicy skippedNo change
Any app requesting at least one scope beyond the baseline, such as Mail.Read or Files.ReadEnforced on that resourceNo change

The last row is why most tenants see little impact: most apps ask for more than the baseline and were already evaluated.

Prerequisites

  • Conditional Access Administrator to change the Baseline scopes settings and policies.
  • Reports Reader, Security Reader or Global Reader to read sign-in logs. To see applied Conditional Access policies through the Microsoft Graph sign-ins API, the account needs Global Reader, Security Reader, Security Administrator or Conditional Access Administrator.
  • Microsoft Graph PowerShell with Policy.Read.All, Application.Read.All and AuditLog.Read.All, or Graph Explorer.
  • Rights to register an application if you plan to use Customize behavior.

Step 1: Find the policies in scope

Microsoft publishes a Graph filter that lists policies targeting All resources with at least one exclusion:

GET https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies?$filter=conditions/applications/includeApplications/any(a:a eq 'All') and conditions/applications/excludeApplications/any()&$select=id,displayName

The same check in PowerShell, with the excluded resources resolved to names so you can see what each exception was for:

Connect-MgGraph -Scopes 'Policy.Read.All', 'Application.Read.All'
 
$policies = Get-MgIdentityConditionalAccessPolicy -All | Where-Object {
    $_.Conditions.Applications.IncludeApplications -contains 'All' -and
    @($_.Conditions.Applications.ExcludeApplications).Count -gt 0
}
 
foreach ($p in $policies) {
    $excluded = foreach ($id in $p.Conditions.Applications.ExcludeApplications) {
        if ($id -match '^[0-9a-fA-F-]{36}$') {
            $sp = Get-MgServicePrincipal -Filter "appId eq '$id'"
            if ($sp) { "$($sp.DisplayName) ($id)" } else { $id }
        } else { $id }
    }
    [pscustomobject]@{
        Policy   = $p.DisplayName
        State    = $p.State
        Grant    = ($p.GrantControls.BuiltInControls -join ', ')
        Excluded = ($excluded -join '; ')
    }
}

If the list is empty, the change doesn't affect you. If it isn't, note the grant control of each policy. Block, require compliant device and require app protection policy are the controls most likely to stop a user outright; require MFA usually means one extra prompt.

Step 2: Log the sign-ins that would be affected

The documented way to identify affected applications in a production tenant is to temporarily route baseline scopes to a placeholder application with Customize behavior. While it is in place, the legacy behavior applies to the policies that exclude the placeholder, and every sign-in that requests only baseline scopes lists the placeholder as a Conditional Access audience in the sign-in logs.

  1. Register a new single-tenant application, for example CA-BaselineScopes-Placeholder. No further configuration is needed. Record its application (client) ID.
  2. In each policy from Step 1 where you want to keep the old behavior during testing, add the placeholder application to Target resources > Exclude.
  3. Sign in to the Microsoft Entra admin center as at least a Conditional Access Administrator and open https://aka.ms/BaselineScopesSettingsUX. The settings are only reachable through this direct link.
  4. Select Customize behavior, select Save, and choose the placeholder application.

Collect sign-ins over several working days so that weekly and monthly tasks show up, then query them:

Connect-MgGraph -Scopes 'AuditLog.Read.All'
 
$placeholder = '<placeholder-app-id>'
$filter = "createdDateTime ge 2026-10-01T00:00:00Z and createdDateTime lt 2026-10-15T00:00:00Z " +
          "and conditionalAccessAudiences/any(a:a eq '$placeholder')"
 
Get-MgBetaAuditLogSignIn -Filter $filter -All |
    Group-Object AppId, AppDisplayName |
    Sort-Object Count -Descending |
    Select-Object Count, Name

Get-MgBetaAuditLogSignIn is in the Microsoft.Graph.Beta.Reports module. The beta sign-ins API returns interactive sign-ins unless you filter on signInEventTypes, which is usually what you want here because the prompts land on interactive sign-ins. The result is your list of client applications that request only baseline scopes.

Step 3: Classify each application

Application typeOwnerWhat to do
Public client requesting only baseline scopesMicrosoft, ISV or your ownDecide whether these sign-ins should really be exempt. For developer tools such as Azure CLI and Visual Studio Code, an MFA prompt is usually correct. Keep an exemption only with a business reason.
Confidential client, excluded from the policy, requesting only baseline directory scopesYour developersAsk whether the app can request OIDC scopes (openid, profile) instead of User.Read for basic user information. Apps that request only OIDC scopes are unaffected.
Confidential client, excluded from the policy, requesting only baseline directory scopesISVAsk the vendor whether the app can switch to OIDC scopes. If not, consider a placeholder exclusion.

For any application your organization owns, confirm it can handle a Conditional Access challenge (MFA, device compliance). An app that requests tokens silently and can't show an interactive prompt will fail where it used to succeed; Microsoft's Conditional Access developer guidance covers the required changes.

Microsoft lists the scenarios where keeping the legacy behavior can be justified:

  • An All resources policy that requires a compliant device, with specific apps that must work from unmanaged devices.
  • An All resources policy that requires an app protection policy, with client apps that don't integrate the Intune SDK.
  • An All resources block policy with specific apps that must stay reachable.
  • Public clients that must be exempt from device compliance requirements.

Step 4: Test the enforced behavior

Test with real users of each app from Step 2:

  1. In a test tenant (the setting is tenant-wide), select Enable enforcement on the Baseline scopes settings page, select Save, then confirm.
  2. Sign in to each application with a pilot account that matches the policy's conditions (device state, location, user group).
  3. Record the experience: no change, extra MFA prompt, device compliance block, or outright failure.
  4. For each failure, open the sign-in event, select the Conditional Access tab, select the policy and check Audience under the resource section. Windows Azure Active Directory in the audience list confirms the sign-in was caught by this change.

Enable enforcement applies the new behavior to all All resources policies with exclusions immediately, so use a test tenant when you can. To revert, select Disable enforcement.

If your sign-in logs go to Log Analytics, this query surfaces failed sign-ins whose Conditional Access audiences include Windows Azure Active Directory:

SigninLogs
| where TimeGenerated > ago(14d)
| where ConditionalAccessStatus == "failure"
| where ConditionalAccessAudiences has "00000002-0000-0000-c000-000000000000"
| summarize Failures = count(), Users = dcount(UserPrincipalName) by AppDisplayName, AppId, ResultType
| order by Failures desc

Step 5: Choose the tenant setting

SettingEffectWhen to use
Enable enforcement (recommended)Baseline scopes are evaluated against Windows Azure Active Directory for all All resources policies with exclusionsYou found no app that genuinely needs an exemption, or you fixed them
Customize behaviorLegacy behavior only for policies that exclude your placeholder app; enforcement everywhere elseA documented app needs to stay exempt from a specific policy
Disable enforcement (not recommended)Legacy behavior for every policy in the tenantShort-term only, while you finish remediation

The rollout doesn't override a choice you made, and you can change the setting at any time. If you choose Customize behavior permanently, remove the placeholder exclusion from every policy where you no longer need it; any policy that excludes it keeps the old gap.

Step 6: Fix the design behind the exclusions

Microsoft's long-term recommendation is a baseline MFA policy for all users and All resources with no resource exclusions. Exclusions in an All resources policy were often added to let one app through a device or block control; consider moving those requirements into separate policies that target named resources, so the baseline MFA policy can stay exclusion-free. Applications that are compliant-device exceptions are also good candidates for review in a wider Zero Trust access design.

Verify

  • Rerun the Step 1 script after changes and confirm every remaining exclusion is documented.
  • Rerun the Step 2 sign-in query after a week; only the apps you consciously exempted should appear against the placeholder.
  • Spot-check sign-ins for Azure CLI and Visual Studio Code: they should now show the policy as applied rather than not applied.
  • Confirm the Baseline scopes settings page shows the option you chose. If enforcement was applied by default, no option appears selected because enforcement is the default behavior.

Troubleshooting

Users of an excluded web app now see AADSTS53000 (DeviceNotCompliant) from unmanaged devices. The app requests only baseline directory scopes and the All resources policy requires a compliant device. Ask the developer to request OIDC scopes only, or add a placeholder exclusion with Customize behavior for that policy.

AADSTS53003 (BlockedByConditionalAccess) for a tool that used to work. A block policy targeting All resources with exclusions now applies to the tool's baseline-scope sign-in. Confirm with the Audience list in the sign-in event, then decide whether the tool should be allowed.

Azure CLI asks for MFA at az login. Expected: Azure CLI requests only User.Read. This also helps with Azure mandatory MFA for resource changes; see fixing Azure CLI, PowerShell and Terraform sign-ins.

AADSTS53009 (Application needs to enforce Intune protection policies). An All resources policy requiring an app protection policy now applies to a client that doesn't integrate the Intune SDK. Exempt it through Customize behavior or change the policy design.

The placeholder app never appears in sign-in logs. Check that Customize behavior is saved with the right application, that the placeholder is excluded from the policies you are testing, and that your query's time range starts after you made the change.

You never received MC1223829. The notice was addressed to tenants where telemetry found an All resources policy with a resource exclusion, so your tenant probably had none at the time. Rerun Step 1 anyway, and again before you add an exclusion.

Checklist

  • Policies targeting All resources with exclusions listed, with each exclusion's purpose recorded.
  • Placeholder application registered and Customize behavior used to log affected sign-ins for several days.
  • Each affected app classified: accept, switch to OIDC scopes, or exempt with a documented reason.
  • Own applications confirmed to handle Conditional Access challenges.
  • Enforcement tested in a test tenant or with pilot users.
  • Tenant setting set deliberately; Disable enforcement used only as a short-term measure.
  • Plan in place for a baseline MFA policy for all users and All resources without exclusions.

References

Questions people ask

What are baseline scopes in Conditional Access?

Baseline scopes are the OIDC scopes email, offline_access, openid and profile, plus the directory scopes User.Read, User.Read.All, User.ReadBasic.All, People.Read, People.Read.All, GroupMember.Read.All and Member.Read.Hidden. Sign-ins that request only these were previously skipped by All resources policies that had any resource exclusion.

Am I affected by the Conditional Access resource exclusions change?

Only if you have a Conditional Access policy that targets All resources, that policy excludes at least one resource, and users sign in through apps that request only baseline scopes. Policies targeting All resources with no exclusions behave the same as before.

Can I opt out of the baseline scopes enforcement?

Yes, but Microsoft doesn't recommend it. The Baseline scopes settings page offers Disable enforcement for the whole tenant and Customize behavior, which keeps the old behavior only for policies that exclude a placeholder application you register. Enforcement is applied automatically if you make no choice.

Why did Azure CLI or VS Code start asking for MFA in 2026?

Azure CLI sign-in requests only User.Read and the Visual Studio Code desktop client requests openid and profile. Both are baseline scopes, so an All resources policy with exclusions now applies to those sign-ins and evaluates them against Windows Azure Active Directory.

Conditional AccessMicrosoft Entra IDSign-in logs
  1. AADSTS50076, 50079 and 50158: fix Microsoft Entra MFA sign-in errors

    What AADSTS50076, AADSTS50079 and AADSTS50158 mean, how to find the policy that demanded MFA in the Entra sign-in logs, and how to fix each one for users, scripts and federated domains.

  2. AADSTS53003 blocked by Conditional Access: find the policy and fix it

    Troubleshoot AADSTS53003 in Microsoft Entra ID: trace the correlation ID to the sign-in log, identify the blocking Conditional Access policy, and fix the user, device or policy without weakening security.

  3. Troubleshoot Conditional Access with the What If tool and sign-in logs

    Find out why a Conditional Access policy did or did not apply to a sign-in by reading the sign-in log, simulating it with What If, and querying results at scale.