How to Migrate from Per-User MFA to Conditional Access
How to Migrate from Per-User MFA to Conditional Access
Many organizations manage MFA at the per-user level: IT manually enables MFA for each user, manages authentication methods individually, and handles exceptions case-by-case. This approach is administratively burdensome and inflexible.
Conditional Access automates MFA enforcement, applies policies based on context (location, device, risk), and eliminates manual per-user management. Migrating from per-user MFA to Conditional Access is one of the highest-impact security improvements you can make.
This guide walks you through the migration step-by-step, minimizing user disruption.
Why Migrate from Per-User MFA to Conditional Access?
Problems with Per-User MFA
Administrative burden: IT manually enables MFA for hundreds of users, manages exceptions, responds to “I can’t sign in” requests.
Inflexible enforcement: Everyone gets the same MFA requirement regardless of context. Executive accessing from home gets challenged; employee in coffee shop doesn’t (if not explicitly enabled).
Exception sprawl: “Just this once” exceptions accumulate. Special cases (contractors, partners, admins) never get removed.
No risk assessment: MFA is always required, even for low-risk sign-ins from recognized locations and devices.
Benefits of Conditional Access
Centralized policy management: Single location to view and manage MFA policies across the entire organization.
Context-aware: Challenge users only when necessary (high-risk sign-in, unknown device, unusual location).
Automation: No manual per-user configuration; policies apply automatically.
Reduced user friction: Low-risk sign-ins succeed without MFA; only risky scenarios are challenged.
Scalability: Adding 100 new users doesn’t require manual MFA setup; policies apply automatically.
Pre-Migration Assessment
Before migrating, understand your current state:
Step 1: Identify Users with Per-User MFA Enabled
In Microsoft 365 Admin Center:
- Users > Active Users
- Click Multi-factor authentication (top right menu)
- Review users with MFA status:
- Enabled: MFA is active
- Enforced: MFA is required (can’t skip)
- Disabled: MFA not configured
Record the count of enabled/enforced users.
Alternatively, use PowerShell:
$users = Get-MsolUser -All | where {$_.StrongAuthenticationRequirements -ne $null}
$users | Select UserPrincipalName, @{Name="MFAStatus";Expression={$_.StrongAuthenticationMethods.IsDefault}} | Export-Csv -Path "C:\MFA_Users.csv"
Step 2: Identify Authentication Methods
Review what authentication methods users have registered:
$users = Get-MsolUser -All | where {$_.StrongAuthenticationRequirements -ne $null}
foreach ($user in $users) {
$methods = $user.StrongAuthenticationMethods | Select -ExpandProperty MethodType
Write-Output "$($user.UserPrincipalName): $($methods -join ',')"
}
This helps you understand what MFA methods users rely on (phone call, text, app-based authenticator, hardware key).
Step 3: Understand Current Exclusions
Check Microsoft Entra ID > Conditional Access:
- Are there existing Conditional Access policies?
- Are there exclusions or exemptions for specific users?
- Are security defaults enabled?
If no conditional access policies exist, you’ll migrate from per-user MFA directly to Conditional Access.
Migration Plan
Phase 1: Prepare Conditional Access Environment (Week 1)
Step 1: Enable Microsoft Authenticator App
Before requiring Conditional Access, ensure users can register MFA methods:
- Microsoft 365 Admin Center > Settings > Org settings > User experience features
- Enable Allow users to register their security information
This allows users to self-register MFA methods at myapps.microsoft.com > Account > My sign-ins.
Step 2: Create Admin Emergency Access Account
Create a break-glass account in case you accidentally lock yourself out:
- Microsoft Entra ID > Users > + New user
- User name: [email protected]
- Password: Generate strong password; store in secure location
- Assign: Global Admin role
- Important: Do NOT configure MFA or Conditional Access for this account
- Store credentials in your disaster recovery system
This account is your only way to modify Conditional Access if something goes wrong.
Step 3: Review Current MFA Methods
Send communication to all users:
Subject: “Security Update: Preparing Multi-Factor Authentication Upgrade”
Message: “We’re upgrading our security to use Conditional Access, which provides better protection while reducing interruptions. No action is required—your current MFA methods will continue working. We’ll provide updates as we implement this change.”
This creates awareness without generating support tickets.
Phase 2: Pilot Conditional Access (Week 2-3)
Step 1: Create Baseline Conditional Access Policy
Navigate to Microsoft Entra ID > Security > Conditional Access > + New policy
Policy Name: “Pilot - Require MFA for All”
Assignments:
- Users: Select a pilot group (50-100 users) or specific department
- Cloud apps: Select Microsoft 365 apps (or choose specific: Exchange Online, SharePoint, Teams)
Conditions:
- Sign-in risk: Leave blank (we’ll add this later)
- Client apps: All client apps
- Locations: All locations
Grant controls:
- Check Require multi-factor authentication
Session controls:
- Sign-in frequency: Leave blank (default)
- Persistent browser session: Leave blank (allow persistent sessions)
Enable policy: Select Report-only
Create
Step 2: Monitor Pilot Phase
Leave in Report-only mode for one week. This logs policy triggers without blocking users.
-
Conditional Access > Click your policy > Workbook
-
Review:
- Policy trigger rate: How many sign-ins match the policy condition?
- User impact: Which users are affected?
- Client apps: Which apps are triggering the policy?
-
Look for concerning patterns:
- High impact on production apps
- Specific users having issues
- Unexpected client apps
Step 3: Gather User Feedback
Send survey to pilot users:
- “Did you notice any changes to your sign-in experience?”
- “Did you have to set up multi-factor authentication?”
- “Any issues or concerns?”
This helps identify unforeseen problems before enterprise-wide rollout.
Step 4: Enable Pilot Policy
After one-week review:
- Return to Conditional Access > Select your policy > Edit
- Change Enable policy to On
- Save
Users in the pilot group now require MFA.
Phase 3: Disable Per-User MFA (Week 3-4)
Once Conditional Access is enforcing MFA, disable per-user MFA to avoid confusion.
Step 1: Audit Per-User MFA Status Again
$users = Get-MsolUser -All | where {$_.StrongAuthenticationRequirements -ne $null}
Write-Output "Users with per-user MFA enabled: $($users.Count)"
Step 2: Disable Per-User MFA for Pilot Users
For pilot users only:
- Microsoft 365 Admin Center > Users > Multi-factor authentication
- Select pilot users
- Click Disable
This removes per-user MFA enforcement. Conditional Access takes over.
Step 3: Communicate to Pilot Users
Subject: “Multi-Factor Authentication Update Complete”
Message: “Your account has been updated to use our new Conditional Access security system. Your MFA experience remains the same—you’ll be asked to provide a second authentication factor in specific scenarios. Thank you for being part of our security upgrade pilot.”
Phase 4: Enterprise Rollout (Week 4-8)
Step 1: Expand Conditional Access Policy
- Conditional Access > Edit your pilot policy
- Assignments > Users > Change from pilot group to All users
- Add Exclusion: Emergency access account
- Save
Step 2: Disable Per-User MFA for All Users
$users = Get-MsolUser -All | where {$_.StrongAuthenticationRequirements -ne $null}
foreach ($user in $users) {
Set-MsolUser -UserPrincipalName $user.UserPrincipalName -StrongAuthenticationRequirements @()
Write-Output "Disabled MFA for $($user.UserPrincipalName)"
}
Note: This disables per-user enforcement. Users retain registered MFA methods and can still use them with Conditional Access.
Step 3: Monitor Enterprise Rollout
- Review Conditional Access > Workbook daily for first 2 weeks
- Monitor help desk tickets for MFA-related issues
- Check Risky sign-ins for unexpected blocks
Step 4: Create Additional Policies
Once baseline MFA policy is stable, add additional policies:
Policy 2: Block Legacy Authentication
- Conditional Access > + New policy
- Name: “Block Legacy Authentication”
- Conditions:
- Client apps: Legacy authentication clients (IMAP, POP3, SMTP, Exchange Web Services)
- Grant: Block
- Enable policy: On
This prevents attackers from using outdated protocols that can’t support MFA.
Policy 3: Require Compliant Device for Sensitive Apps
- Conditional Access > + New policy
- Name: “Require Compliant Device - Sensitive Apps”
- Cloud apps: Exchange Online, SharePoint, Teams
- Grant: Require device to be marked compliant
- Enable policy: Report-only initially
This requires corporate-managed devices for email and documents.
Policy 4: High-Risk Sign-In Challenge (requires E5 licensing)
- Conditional Access > + New policy
- Name: “Challenge High-Risk Sign-Ins”
- Conditions:
- Sign-in risk: High
- Grant: Require MFA or password change
- Enable policy: On
This detects sign-in anomalies (impossible travel, new device) and requires additional verification.
Handling Special Cases
Contractor or Third-Party Accounts
Create conditional access exemption:
- Conditional Access > Edit policy
- Assignments > Users > Exclude
- Create security group “Contractors”
- Add to exclusions
This requires separate MFA governance for contractor accounts (perhaps per-user MFA remains enabled for them).
Accounts Without MFA Methods Registered
If users haven’t registered MFA methods, Conditional Access blocks access. Handle this:
Option 1: Provide self-service registration
Send users to myapps.microsoft.com:
- Click Account > My sign-ins
- Click Additional security verification or Protect your account
- Register MFA methods
Option 2: Use Intune to push authenticator
If users have corporate devices enrolled in Intune:
- Deploy Microsoft Authenticator via Intune
- Configure for passwordless phone sign-in
- Users approve the sign-in request on their phone instead of entering a password
Option 3: Temporary per-user MFA
For holdout users, temporarily enable per-user MFA while they register methods.
Admin Accounts
Create stricter policies for privileged accounts:
- Conditional Access > + New policy
- Name: “Require Compliant Device - Admin Accounts”
- Users: Create group “Microsoft 365 Admins”
- Grant: Require multi-factor authentication AND require device compliance
- Enable policy: On
This ensures admins use corporate-managed devices.
Rollback Plan
If Conditional Access causes widespread issues:
- Disable the policy (set to Report-only or delete)
- Re-enable per-user MFA:
Set-MsolUser -UserPrincipalName [email protected] -StrongAuthenticationRequirements @(New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement -Property @{RelyingParty="*";State="Enabled"}) - Investigate root cause
- Plan revised rollout addressing the issue
Success Metrics
Track these metrics during and after migration:
Week 1-2 (Pilot Phase):
- Pilot policy trigger rate: Target 30-50% of sign-ins
- Pilot user MFA success rate: >95%
- Help desk tickets related to MFA: <5% increase
Week 4-8 (Enterprise Rollout):
- Enterprise policy trigger rate: 40-60%
- Overall MFA success rate: >98%
- Sign-in latency: <2 second additional delay
- Legacy authentication blocks: Tracked and approved
Ongoing:
- Risky sign-in detections: Monitor for anomalies
- Conditional Access policy modification frequency: Quarterly reviews
- User satisfaction: Annual survey; >80% satisfaction target
Troubleshooting Common Issues
Issue: Users Locked Out After Policy Enablement
Cause: Users haven’t registered MFA methods
Solution:
- Use emergency access account to disable policy
- Send users to MFA registration
- Re-enable policy
Issue: Specific App Broken by Conditional Access
Cause: Legacy app doesn’t support modern authentication
Solution:
- Exclude the app from conditional access policy (if low-risk)
- Migrate app to modern authentication protocol
- Or create separate device-specific policy for legacy app
Issue: High False Positive Rate (Legitimate Users Blocked)
Cause: Policy conditions too strict
Solution:
- Review policy workbook; identify false positives
- Adjust conditions (e.g., exclude trusted locations)
- Reduce sign-in risk threshold
Migration Checklist
- [ ] Week 1: Create emergency access account
- [ ] Week 1: Enable authenticator self-registration
- [ ] Week 2: Create baseline Conditional Access policy in report-only mode
- [ ] Week 3: Monitor pilot phase; enable policy; disable per-user MFA for pilots
- [ ] Week 4: Expand policy to all users
- [ ] Week 4: Disable per-user MFA for all users
- [ ] Week 5-8: Create additional policies (legacy auth block, compliant device, risk-based)
- [ ] Ongoing: Monthly policy reviews; quarterly updates
Conclusion
Migrating from per-user MFA to Conditional Access reduces IT burden, improves security flexibility, and provides better protection against context-specific risks. The phased approach—pilot first, monitor thoroughly, expand methodically—ensures minimal user disruption and maximum success.
Most organizations complete this migration in 4-8 weeks. The benefits—reduced administrative overhead, better security posture, and improved user experience—justify the effort.
Ready to migrate to Conditional Access? Schedule a consultation at 365securityassessment.com to develop a migration plan tailored to your organization’s environment and user base.