Overview
Designated users will be prompted to use their multi-factor authentication (MFA) process upon login.
Rationale
Enabling multi-factor authentication is a recommended setting to limit the potential for accounts to be compromised and to limit access to authenticated personnel.
Impact
Risk-based conditional access requires Microsoft Entra ID P2, which increases the cost. Similarly, it may require additional overhead to maintain if users lose access to their MFA.
Default Value
MFA is not enabled by default.
Remediation guidance
From Azure Portal
- Open Conditional Access | Policies.
- Click
+ New policy. - Enter a name for the policy.
- Select
Users. - Under
Include, selectAll users. - Under
Exclude, checkUsers and groups. - Select users this policy should not apply to and click Select.
- Under
Target resources, selectCloud apps`. - Select
All cloud apps. - Select
Conditions. - Select
Sign-in risk. - Update the
Configuretoggle toYes. - Check the sign-in risk level this policy should apply to, e.g.,
HighandMedium. - Select
Done. - Click the blue text under
Grant access, checkRequire multifactor authentication, then click theSelectbutton. - Click the blue text under Session, then check Sign-in frequency, select
Every time, and click theSelectbutton. - Set
Enable policytoReport-only. - Click
Create.
After testing the policy in report-only mode, update the Enable policy setting from Report-only to On.
Service-wide remediation
Recommended when many resources are affected: fix the platform baseline first so new resources inherit the secure setting, then remediate the existing flagged resources in batches.
Microsoft Entra ID
Use tenant-wide Conditional Access, role settings, authentication policies, and identity governance baselines so the control is enforced centrally.
Operational rollout
- Fix the baseline first at the account, subscription, project, cluster, or tenant scope that owns this control.
- Remediate the currently affected resources in batches, starting with internet-exposed and production assets.
- Re-scan and track approved exceptions with an owner and expiry date.
Query logic
These are the stored checks tied to this control.
Entra Conditional Access - MFA for Risky Sign-Ins
Connectors
Covered asset types
Expected check: eq []
{
connectors(
where: {
conditionalAccessPolicies_NONE: {
conditions: {
includeUsers: ["All"]
NOT: { excludeUsers: [] }
includeApplications: ["All"]
clientAppTypes: ["all"]
signInRiskLevels_INCLUDES: "high"
}
grantControls: { builtInControls: ["mfa"] }
sessionControls: {
signInFrequencyIsEnabled: true
signInFrequencyInterval: "everytime"
}
}
}
) {
...AssetFragment
}
}