
Maynor in the Cloud / Beyond the Tenant
Why configuration state is not proof of security control effectiveness.
A Conditional Access policy can be enabled and still protect nobody.
That sounds contradictory until you separate configuration from control effectiveness.
A policy might be enabled but target a group with no relevant members. It might include a deleted account. It might protect only some of the applications you thought were covered. Or it might technically work and still create enough authentication friction that users cannot work.
That is why I do not consider a Conditional Access policy effective simply because it exists in Entra.
I want to see the outcome.
And I want evidence that proves it.
Enabled Is Not the Same as Effective
Conditional Access is often reviewed as configuration.
Open the policy. Check whether it is enabled. Review the users. Review the applications. Review the grant control. Move on.
That tells me what somebody configured.
It does not tell me what happens when a real user, from a real device, tries to access a real resource.
I have seen the gap show up in several ways.
One MFA policy existed but was in report-only mode.
Another enabled policy targeted an identity object that had already been deleted.
In another case, an automated readiness check passed an MFA requirement based on policy count even though deeper review showed the intended user population was not universally being challenged.
All three environments had Conditional Access configuration.
That did not mean all three had an effective control.
The Security Control Validation Model
I would validate Conditional Access through this chain:
Control Design
Scope
Eligibility
Enforcement Result
Evidence
Ownership
Revalidation
Security Control Validation Model — configuration is only one stage of control effectiveness.
That looks like more work than checking whether a policy is on.
It is.
But each stage answers a different architectural question.
Start With the Requirement
Before looking at Conditional Access, establish what the organization is actually trying to achieve.
Not: We need an MFA policy.
Instead: Administrative access must require stronger authentication.
Or: Unmanaged devices must not access corporate data.
Or: Risky sign-ins must trigger additional verification before access is granted.
Those are outcomes.
Conditional Access is the enforcement mechanism.
That distinction matters because policy names can create false confidence. A policy can be called “Require MFA” while the scope, conditions, or exclusions produce something quite different.
Architecture starts with the requirement.
Technology comes after it.
Configuration Is Only One Layer
Once the requirement is clear, then review the policy.
- Is it enabled, report-only, or disabled?
- What identities are included?
- What resources are protected?
- What conditions exist?
- What grant controls exist?
- What exclusions exist?
That is necessary.
It is simply not enough.
One of the easiest mistakes in a security assessment is treating configuration state as evidence that the control is doing what the requirement says.
A scanner can see a policy. It cannot automatically prove that the intended population is actually protected.
Scope Has to Be Proven
The next question is: Who and what is actually covered?
If a policy includes a group, who is currently in the group?
If an exclusion group exists, who is currently excluded?
If the policy targets specific resources, what is not included?
If individual users are assigned, do those directory objects still exist?
I have seen enabled policies that referenced deleted identities.
The policy existed.
The target did not.
That is why I want scope enumerated rather than assumed.
Scope and Eligibility Are Different
Scope tells us who could be affected.
Eligibility tells us whether a particular sign-in actually meets the conditions required for the policy to evaluate.
A user can be correctly assigned to a policy, but the sign-in may not meet the device, risk, location, application, or other conditions that make the policy applicable.
The policy can therefore be correctly configured, correctly scoped, and enabled — and still not participate in the transaction you thought it was protecting.
This is where Conditional Access stops being a static configuration problem and becomes a runtime architecture problem.
Runtime Evidence Is Where the Design Becomes Real
Eventually a user attempts to access a resource.
Now we can ask:
- Which policies evaluated?
- Which did not?
- Why?
- Which resource was being accessed?
- What device context existed?
- Which authentication method was used?
- What was the final result?
Microsoft Entra sign-in logs provide the runtime evidence needed to move from this policy should apply to this policy evaluated, this requirement was applied, and this was the result.
That is a very different level of confidence.
A Secure Policy Can Still Be a Failed Control
Validation also has to catch over-enforcement.
Security teams naturally focus on whether controls block enough.
But architecture also has to consider whether legitimate users can work.
I have seen a stronger-authentication change create access problems for pilot users and require rollback.
The lesson was simple:
That is not just change management.
It is architecture validation.
A control can be technically secure and still be the wrong production design if the people it is supposed to protect cannot work.
The users are still the customer.
Exceptions Are Part of the Control
I also do not treat exclusions as footnotes.
They are part of the effective security boundary.
If a policy protects 10,000 users but an exception group contains hundreds of identities that nobody reviews, that exception group belongs in the architecture.
For every exclusion, I want to know:
- Why does it exist?
- Who owns it?
- What compensating control exists?
- When is it reviewed?
- What causes the exception to be removed?
The effective control is not “all users require MFA” if the implementation is really “all users except several unmanaged exception paths require MFA.”
The second statement is the architecture.
Test One Change at a Time
One of the stronger validation patterns I have used is a small pilot that isolates a single change.
Clone the existing policy. Change one requirement. Move a small test population under the new version. Then monitor authentication prompts, SSO behavior, application access, sign-in evidence, and user feedback.
That matters because troubleshooting gets difficult when too many variables change at once.
If authentication strength, session controls, device conditions, resource scope, and exclusions all change together, you may know something broke.
You may not know why.
A good pilot reduces uncertainty.
What I Validate Before I Call a Control Effective
| Stage | Architectural question |
|---|---|
| Requirement | What security or business outcome are we trying to create? |
| Control Design | How should the system create that outcome? |
| Configuration | Is the technical control configured as designed? |
| Scope | Which identities and resources are actually assigned? |
| Eligibility | Does the real scenario meet the conditions required for evaluation? |
| Runtime Evaluation | Did the control evaluate during the transaction? |
| Enforcement Result | What requirement, block, or session outcome actually occurred? |
| Evidence | What proves the expected outcome happened? |
| Exceptions | Who bypasses the control, why, and under what compensating controls? |
| Ownership | Who operates, supports, investigates, and changes it? |
| Revalidation | When do we prove it again? |
That gives me far more confidence than: Policy status: On.
The Architectural Judgment
Conditional Access is powerful because it makes access decisions dynamically.
That same characteristic is why a static configuration review is not enough to prove that it works.
A policy can be enabled and protect nobody.
A report-only policy can look complete and enforce nothing.
A correctly scoped policy can fail because the runtime context never makes it eligible.
A technically correct policy can still be a failed design if users cannot work.
And an exception can quietly become the largest hole in the control.
The policy is not the control. The outcome is the control.

