Join our Newsletter — 33% off our NHI Course

Why do MFA and Conditional Access not stop this attack path?

Those controls govern human interactive sessions, not every app-only authentication flow. Once an attacker can authenticate as the service principal itself, the app’s permissions and assigned roles govern access instead of the user’s session policies. That is why human-centric enforcement can be bypassed when application credentials are introduced.

Why MFA and Conditional Access Stop the User, Not the App

MFA and conditional access are strongest when they sit in front of an interactive human sign-in. If the attacker never needs the user session and instead gains a reusable application credential, certificate, token, or client secret, those controls may never execute. The decisive question becomes whether the app identity itself is trusted to call the target resource.

That is why app-only paths often bypass the familiar human sign-in protections. The application is treated as its own authenticated principal, so the security decision shifts from “did this user pass MFA?” to “is this app identity valid, and what is it allowed to do?” That shift is the core reason the attack path survives.

In practice, the bypass is not magic. It usually reflects a difference between delegated user access and direct application access. A delegated flow inherits user-context controls, while a client credentials flow, service principal login, or token replay against an already trusted app principal can operate outside the policy checks tied to browser-based or device-based sessions.

Where App-Only Auth Changes the Trust Boundary

Once the attacker authenticates as the service principal, the app’s assigned permissions govern what happens next. If the app has broad API scopes, directory roles, cloud permissions, or backend access, the attacker can exercise those rights even when the human account behind the original compromise would have been blocked by step-up prompts, compliant-device rules, or location policies.

This is why overprivileged application identities are so dangerous. The human user may be heavily protected, but if the application credential can reach the same resources without an equivalent control boundary, the attacker only needs one valid app path. The protection problem is then no longer primarily about user authentication, but about application identity governance, secret handling, and privilege design.

Conditional Access also has structural limits. It can enforce sign-in conditions for supported interactive and some token-based scenarios, but it cannot retroactively compensate for an application that already possesses standing access to a resource. If the resource trusts the app, the app can act within that trust envelope until the credential is rotated, revoked, or the permissions are reduced.

What Actually Determines Whether the Path Succeeds

The outcome depends on the credential type, the auth flow, and the privilege model attached to the app identity. A short-lived user session with MFA can still be well protected, while a long-lived client secret, certificate, refresh token, or federated trust can create a separate access lane that sidesteps human-centric policy enforcement.

That means defenders should look beyond “MFA enabled” as a yes or no answer. The more useful question is whether the environment has separate controls for application authentication, secret lifecycle, role assignment, and token scope. If those controls are weak, the app becomes an alternate path around the very policy meant to stop compromise.

For a useful control model, compare the user sign-in path with the app authentication path and verify that both are covered by explicit ownership, review, and revocation processes. A strong interactive policy does not automatically secure service principals, OAuth apps, or automation accounts that can authenticate without a person present.

Risk and Threat Considerations

When attackers can pivot from a human account into an application identity, the exposure is often larger than a single session compromise. The app may hold persistent access to data stores, management APIs, mail, collaboration tools, or cloud resources, so one stolen secret can become durable, high-blast-radius access.

Failure mechanism: The attacker obtains or abuses a non-interactive application credential, then uses the app’s standing permissions to bypass user-session controls that were designed for MFA and Conditional Access enforcement.

Impact: The attacker can retain access even after the user password is changed, the user is challenged, or the interactive session is blocked, because the app principal remains trusted until its own credentials and entitlements are removed.

Standards & Framework Alignment

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

OWASP Non-Human Identity Top 10 and OWASP API Security Top 10 address the attack surface, NIST SP 800-53 Rev 5 sets the technical controls, and ISO/IEC 27001:2022 defines the regulatory obligations.

Framework Control / Reference Relevance
NIST SP 800-53 Rev 5 IA-5 — Authenticator Management Application secrets and tokens need lifecycle control to stop app-only bypass paths.
IA-9 — Service Identification and Authentication The question is about non-interactive app authentication outside human MFA flows.
AC-6 — Least Privilege App-only access succeeds or fails on the permissions granted to the application principal.
Recommendation — Rotate, store, and revoke application authenticators on a defined lifecycle. Authenticate service principals with controls that are separate from human sessions. Reduce application privileges to the minimum required for each workload.
ISO/IEC 27001:2022 A.5.15 — Access control The issue is a trust-boundary gap between user-session controls and app access.
A.8.5 — Secure authentication App credentials can bypass human MFA unless application authentication is governed separately.
Recommendation — Define separate access rules for human and application identities. Secure application authentication with distinct credential and trust controls.
OWASP Non-Human Identity Top 10 NHI-04 — Insecure Authentication App-only access paths fail when application authentication is weak or reusable.
NHI-05 — Overprivileged NHI The attack path works when the service principal has permissions broader than needed.
NHI-07 — Long-Lived Secrets Reusable app secrets and tokens let attackers persist beyond user-session policies.
Recommendation — Harden application authentication so stolen app credentials cannot freely replay access. Trim application privileges to limit what a compromised app can reach. Replace long-lived application secrets with short-lived, tightly governed credentials.
OWASP API Security Top 10 API2 — Broken Authentication The attack path succeeds when APIs trust an application credential that bypasses user MFA.
API5 — Broken Function Level Authorization App principals may inherit powerful functions once authenticated, even if users are constrained.
Recommendation — Verify that API authentication cannot be bypassed by app-only credentials. Enforce function-level authorization for application identities.

Practitioner Guidance

What to verify: Confirm whether the attack path uses delegated user access, client credentials, service principal authentication, or token replay. If it is app-only, validate the app’s effective permissions separately from the user account that originally exposed it.

What to prioritise: Review every application identity that can reach sensitive production resources, especially those with directory roles, broad API scopes, or long-lived secrets. The highest-risk cases are the ones where the app can do more than the average user would ever be allowed to do interactively.

Common mistake: Treating “MFA enforced” as proof that the path is blocked. MFA reduces risk for human sign-ins, but it does not automatically neutralise application credentials, so the control has to be paired with permission minimisation and secret rotation.

Practitioner takeaway: If the attacker can authenticate as the app rather than the person, then the security decision moves to the app’s own trust, privilege, and secret lifecycle, not the user’s session policy.