Join our Newsletter — 33% off our NHI Course
Home› FAQ› Authentication, Authorisation & Trust› What is an example of Conditional Access Policy…
Authentication, Authorisation & Trust

What is an example of Conditional Access Policy Coverage Gap in real code?

← Back to all FAQ
By NHI Mgmt Group Editorial Team Updated October 20, 2026 Domain: Authentication, Authorisation & Trust

A coverage gap exists when code or infrastructure lets users reach a sensitive app without the expected conditional access evaluation. For example, a service that trusts any valid session token but does not enforce device, location or risk checks at the application boundary leaves a path around policy. Enforce access controls consistently across all entry points.

How a Conditional Access Coverage Gap Shows Up in Real Code

A coverage gap is rarely a policy problem on paper, it is usually an enforcement problem in code. The application accepts a session, token, or upstream assertion as sufficient proof and never re-checks the policy conditions that should apply at that entry point. That means a user can reach a sensitive function through one route even though another route is protected.

In practice, the gap often appears when one component enforces conditional access at login, but an API, legacy endpoint, background service, or admin console accepts the same token without re-evaluating device state, location, sign-in risk, or authentication strength. The result is inconsistent control coverage across the application boundary, not a single broken rule.

A useful way to think about it is boundary drift: the policy exists in the identity layer, but the sensitive operation lives somewhere else. If the application never checks that the current request still satisfies the expected conditions, it creates an alternate path around the control. NHIMG’s Conditional Access Guide covers policy design, report-only testing, and gap analysis for exactly this kind of failure mode.

What the Broken Path Looks Like in Code

The simplest anti-pattern is trusting a valid token alone. A request handler verifies that the user is authenticated, then grants access because the session is unexpired, even though the application was supposed to require a compliant device or a trusted location for that route. That is not a token validation failure, it is a missing policy check at the point where the sensitive action happens.

Another common pattern is selective enforcement. The web front end checks conditional access, but a direct API call, service-to-service call, or alternate host name skips that logic. When the same protected resource is reachable through multiple interfaces, every path needs equivalent evaluation or the protected surface is only partially protected. NHIMG’s Microsoft 365 Security Guide is a good reference point for thinking about Entra sign-in controls, app settings, and audit signals as a system rather than a single toggle.

A concrete example in pseudo-code is: authenticate once, then authorize every later request only by session presence. If the code never asks whether the current request still meets the intended access conditions, the session becomes a bypass mechanism. That is why conditional access should be treated as an ongoing enforcement dependency, not a one-time login gate.

Why the Gap Matters Beyond the Login Screen

The security impact is that an attacker or careless user can keep using a legitimate session path even after the environment no longer matches the original trust assumptions. A sensitive app may be reachable from an unmanaged device, a risky network, or a less trusted browser session if the application does not enforce the same conditions where the data or action is actually exposed.

This is especially dangerous when the app controls high-value data or privileged actions. A gap at one entry point can nullify the practical effect of a strong conditional access policy, because the control only protects the easiest route, not the full attack surface. NHIMG’s Zero Trust Identity Guide helps frame this as an enforcement and trust-boundary problem, not just a sign-in configuration problem.

It also creates brittle operations. Teams may believe they have enforced device, location, or risk-based access, while production traffic continues through a route that never consults those signals. That mismatch between policy intent and runtime behavior is the core of the coverage gap.

Risk and Threat Considerations

A coverage gap creates a practical bypass path. If one entry point performs conditional access evaluation and another does not, an attacker only needs the weaker path to reach the protected resource, persist in a session, or invoke a sensitive action without re-triggering the intended checks.

Failure mechanism: The application or service trusts authentication state but does not bind authorization to the current device, location, session context, or risk decision at every sensitive entry point.

Impact: Users can reach protected functions through an unguarded path, which weakens policy enforcement, enlarges blast radius, and can expose data or administrative actions that were meant to stay behind conditional access.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP ASVS, NIST SP 800-53 Rev 5 and CIS Controls v8 set the technical controls, while ISO/IEC 27001:2022 defines the regulatory obligations.

FrameworkControl / ReferenceRelevance
OWASP ASVSV10 — OAuth and OIDCDirectly applies because the gap involves token and session-based access enforcement.
Recommendation — Require every protected path to enforce the same token and session validation rules.
NIST SP 800-53 Rev 5AC-3 — Access EnforcementApplies because the issue is inconsistent enforcement at the application boundary.
IA-2 — Identification and Authentication (Organizational Users)Relevant because the bypass depends on accepting session state without renewed checks.
Recommendation — Enforce access decisions on every path that can reach sensitive functions. Bind sensitive access to authenticated identity and required context checks.
ISO/IEC 27001:2022A.5.15 — Access controlApplies because the subject is a policy coverage gap in access enforcement.
Recommendation — Define and enforce access control rules consistently across all entry points.
CIS Controls v8CIS-6 — Access Control ManagementFits because the gap is a failure to govern access consistently across routes.
Recommendation — Validate that all reachable interfaces enforce the same access restrictions.

Practitioner Guidance

What to verify: Test every route that reaches the sensitive app, including APIs, alternate domains, legacy interfaces, and service callbacks. The question is not whether conditional access exists somewhere in the tenant, but whether the specific request path that matters is actually forced through it.

Decision rule: If a route can reach production data or privileged functionality without re-evaluating the intended access conditions, treat it as a coverage failure even when the primary login flow is protected. Fix the path, not just the policy object.

Common mistake: Teams validate the interactive browser flow and assume the rest of the estate inherits the same protection. That assumption breaks as soon as a token, proxy, embedded client, or backend integration exposes a second way in.

Practitioner takeaway: Conditional access is only as strong as its weakest runtime path, so the control objective is consistent enforcement at every entry point that can actually reach the asset.

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Reviewed and updated by the NHIMG editorial team on October 20, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org