Conditional Access is not a firewall and it is not a VPN. It is a policy engine that sits between a user completing their first-factor sign-in and actually reaching the resource they requested. Every sign-in is evaluated against all applicable CA policies simultaneously.
The logic is simple: IF a set of conditions is true at sign-in, THEN enforce specific controls. All matching policies are applied together — if two policies both apply, the user must satisfy both. The outcome is always the most restrictive combination.
Sign-in risk is evaluated in real time during the authentication attempt. Is this specific sign-in suspicious? Anonymous IP, impossible travel, malware-linked IP, unfamiliar sign-in properties.
User risk is calculated by Identity Protection in the background based on patterns over time. Is this user's account likely compromised? Leaked credentials, unusual activity patterns.
Even a perfectly configured "All users, All apps" CA policy does not cover everything. These actions require dedicated policies or are outside CA scope entirely:
These six policies represent the minimum enterprise CA baseline. Every policy has one job. Build them in this order — each one closes a specific attack surface.
A consistent naming convention means anyone troubleshooting at midnight can understand what a policy does without reading its full configuration. Microsoft recommends one policy = one job, with the action and scope in the name.
AiTM (Adversary-in-the-Middle) phishing uses a relay proxy (Evilginx, Modlishka) that sits between the user and the real Microsoft sign-in page. The user completes legitimate MFA through the proxy — the attacker captures the resulting session token and replays it from their own machine. MFA is already satisfied. CA policies are bypassed.