How to migrate from AD FS to Microsoft Entra ID
Discover every relying party, give users password hash sync or pass-through sign-in, pilot with staged rollout, move apps with the AD FS application migration wizard, convert your domains to managed, then remove AD FS and WAP the way Microsoft documents.
How do you migrate from AD FS to Microsoft Entra ID?
This retires AD FS (Active Directory Federation Services, the on-premises servers that sign users in to Microsoft 365 and other apps) and moves that sign-in to Microsoft Entra ID, the cloud directory behind Microsoft 365. Nothing is copied: you change where passwords and MFA (multi-factor authentication) are checked.
- Recommended route: Staged rollout, then domain conversion and app waves
- Order: Give every user a working cloud sign-in before anything is switched off, and keep AD FS running as the fallback until the very end.
- 6 phases: Find what uses AD FS, Prepare cloud sign-in, Pilot cloud sign-in, Move the apps, Switch the domains and Remove AD FS.
- You're done when: Every domain shows Managed in Get-MgDomain, and staged rollout features are Off.
The recommended route turns on password hash sync (Entra ID checks a hash of each AD password), tests cloud sign-in with a pilot group using staged rollout (cloud sign-in for chosen groups while AD FS still serves everyone else), converts each domain from federated (signing in through AD FS) to managed (signing in through Entra ID), moves each app that signs in through AD FS (Microsoft calls these relying party trusts), then removes the AD FS servers. Expect a few weeks of running both, plus at least one quiet week before you remove AD FS.
Pilot groups test cloud sign-in while AD FS stays as the fallback, and the migration wizard handles the basics for SAML apps.
Other options and when to use them
- Direct switch with Entra Connect Change user sign-in: Entra Connect set up your AD FS farm, it serves only Microsoft 365, and everyone can change in one window.
- Move Microsoft 365 now, keep AD FS for some apps: A few legacy or header-based apps cannot move yet. Keep a small AD FS farm for them until they do.
Give every user a working cloud sign-in before anything is switched off, and keep AD FS running as the fallback until the very end. Microsoft says users and apps can move in either order, but recommends users first, because Microsoft 365 is usually the busiest app on AD FS.
- Inventory and back up: relying party trusts, federation settings, the AD FS farmYou cannot plan apps you have not found, and your rollback is to federate the domain again with the settings you saved.
- Turn on password hash sync and build Conditional Access in Report-only modeUsers need a cloud sign-in method and the same protections before AD FS stops checking them. Report-only shows the effect without blocking anyone.
- Register users for Entra MFAAfter conversion only Entra MFA applies, so an MFA adapter on AD FS (such as Duo) stops prompting.
- Pilot cloud sign-in with staged rollout groupsThe domain stays federated, so everyone outside the pilot is untouched and the pilot can be undone by removing them from the group.
- Convert domains to managed, one at a time, smallest firstEach conversion moves every user on that domain at once and can take up to 60 minutes, so a small domain shows problems with fewer people affected.
- Move the apps in waves, SAML apps with the wizard firstThese can run alongside or after the domains. The wizard handles the basics for SAML apps, which leaves the hand-built apps for later waves.
- Give apps published through Web Application Proxy a new publishing pathRemoving Web Application Proxy (WAP) takes them offline, and nothing moves them for you.
- Watch for a week, then uninstall AD FS and WAPMicrosoft asks for at least one week with no AD FS sign-ins. After uninstall, going back means building a new farm.
Built-in and third-party tools treat these differently. Tick each one off once you have decided.
Download this checklist (Excel)How each tool handles it
Built-in methodMicrosoft recommends password hash sync. Its decommission guide says pass-through authentication should only be used where regulation forbids syncing password information. Password hash sync also gives you a fallback if pass-through agents or AD fail.Tip: Turn password hash sync on and let a full sync cycle finish before the pilot, even if you choose pass-through authentication.
Microsoft Learn: AD FS decommission guideHow each tool handles it
Built-in methodWhile a domain is federated, the federatedIdpMfaBehavior setting controls whether Entra ID accepts MFA done by AD FS. After conversion, only Entra MFA applies.Microsoft Entra external MFALets an external MFA provider meet Entra ID MFA requirements. Each user of it needs a Microsoft Entra ID P1 or P2 licence.Duo for Microsoft Entra ID external MFADuo counts as an Entra ID MFA method and can satisfy Conditional Access. Running the old Duo custom control too can prompt some users twice.Tip: Save the current value with Get-MgDomainFederationConfiguration before you change anything.
Microsoft Learn: Migrate from federation to cloud authenticationHow each tool handles it
Built-in methodAccess rules on AD FS do not carry over. Conditional Access needs a Microsoft Entra ID P1 licence for each user. Microsoft 365 Business Premium and Microsoft 365 E3 include P1; Microsoft 365 E5 includes P2, which also covers it.Tip: Build each policy in Report-only mode during the pilot, and add one that blocks legacy sign-in.
Microsoft Learn: Microsoft Entra licensingHow each tool handles it
Built-in methodStaged rollout needs plain assigned groups (no nested or dynamic groups), with up to 200 users in a new group when first added. It cannot test legacy sign-in (POP3, SMTP), smart cards, Windows Hello for Business certificate trust or non-persistent VDI (virtual desktops reset at sign-out).Tip: Give each new pilot user a Temporary Access Pass (a one-time sign-in code) so they skip their last AD FS sign-in.
Microsoft Learn: Migrate to cloud authentication using Staged RolloutHow each tool handles it
Built-in methodThe AD FS application migration dashboard in Entra ID only shows apps with sign-ins in the last 30 days, and hides Microsoft relying parties. It needs Connect Health agents on the AD FS servers.Tip: Export every trust with PowerShell, reconcile it against the dashboard, and ask owners about quarterly and year-end apps.
Microsoft Learn: AD FS application migration to move AD FS apps to Microsoft Entra IDHow each tool handles it
Built-in methodThe wizard creates the enterprise app for SAML apps only. It does not move the signing certificate or Conditional Access, and not every claim rule translates as is.Tip: Use Migration status details to see which claims need review, and test with each app owner before production.
Microsoft Learn: AD FS application migration to move AD FS apps to Microsoft Entra IDHow each tool handles it
Built-in methodThe wizard does not handle these. Each is set up by hand as an app registration or enterprise app, and the app itself must be updated with the new settings.Tip: Book time with each app vendor or developer early, because they usually make the change on their side.
Microsoft Learn: AD FS application migration to move AD FS apps to Microsoft Entra IDHow each tool handles it
Built-in methodMicrosoft's decommission guide tells you to remove published apps before uninstalling WAP, but does not move them anywhere.Microsoft Entra application proxyPublishes on-premises web apps, including Kerberos and form-based ones, through outbound-only connectors.Strata Maverics Identity OrchestrationSends each user to AD FS or Entra ID depending on whether they have moved, so an app follows your user waves.Tip: List every published app in the Remote Access Management Console and test its new path from outside the network.
Microsoft Learn: AD FS decommission guideHow each tool handles it
Built-in methodAD FS sign-in page customisations (onload.js) cannot be copied to Entra ID. Users must sign in with their full UPN or email address. Company branding needs a Microsoft 365 or paid Entra ID licence.Tip: Set up company branding before the pilot and send users a screenshot of the new page.
Microsoft Learn: Migrate from federation to cloud authenticationHow each tool handles it
Built-in methodBy default, password hash sync sets synced users' cloud passwords to never expire, and staged rollout users get no expiry either.Tip: Review CloudPasswordPolicyForPasswordSyncedUsersEnabled with your security owner before cutover.
Microsoft Learn: Implement password hash synchronizationHow each tool handles it
Built-in methodThe Entra Connect Change user sign-in option converts all federated domains at once, and only if Entra Connect set up the farm. Update-MgDomain in PowerShell converts one domain at a time. Each conversion can take up to 60 minutes.Tip: Convert outside business hours, test or smallest domain first. Modern Outlook, Teams and OneDrive keep working on their existing tokens.
Microsoft Learn: Migrate from federation to cloud authenticationHow each tool handles it
Built-in methodHybrid joined Windows 10 and later PCs sign in with a Primary Refresh Token from Entra ID. Seamless SSO (for older PCs) uses a Kerberos key that Microsoft says to roll over at least every 30 days.Tip: Run dsregcmd /status on sample PCs after conversion and check AzureAdPrt shows YES.
Microsoft Learn: Migrate from federation to cloud authenticationHow each tool handles it
Built-in methodMicrosoft asks for at least one week of testing after moving authentication, checking AD FS event logs or Connect Health for any sign-ins.Tip: Take a final Rapid Restore Tool backup before you uninstall, and keep it until your rollback period ends.
Microsoft Learn: AD FS decommission guide
- 1
Find what uses AD FS
Before you change sign-inShow the detailed steps (5) →Watch out: The migration dashboard only shows apps used in the last 30 days, and hides Microsoft relying parties.
Ways around it
- Reconcile the dashboard against your PowerShell export, and ask each owner when the app is next used.
- 2
Prepare cloud sign-in
Watch out: If AD FS uses a third-party MFA adapter such as Duo, only Entra MFA applies after conversion.
Ways around it
- Have users register for Entra MFA during the pilot.
Tools that can do it
- Microsoft Entra external MFALets an external MFA provider meet Entra ID MFA requirements. Each user of it needs a Microsoft Entra ID P1 or P2 licence.
- Duo for Microsoft Entra ID external MFADuo counts as an Entra ID MFA method and can satisfy Conditional Access. Running the old Duo custom control too can prompt some users twice.
Watch out: AD FS sign-in page customisations do not carry over, and users must sign in with their full UPN or email.
Ways around it
- Set up Entra company branding and tell users what the new page looks like.
Show the detailed steps (4) →Watch out: Password hash sync sets the cloud passwords of synced users to never expire by default, whatever your AD policy says.
Ways around it
- Review CloudPasswordPolicyForPasswordSyncedUsersEnabled with your security owner before cutover.
- 3
Pilot cloud sign-in
Watch out: Staged rollout does not accept nested or dynamic groups, and a new group can hold 200 users when first added.
Ways around it
- Use several plain assigned groups for larger waves.
Show the detailed steps (3) →Watch out: Staged rollout cannot test legacy sign-in (POP3, SMTP), smart cards, Windows Hello certificate trust or non-persistent VDI.
Ways around it
- Move legacy clients to modern authentication, plan certificate-based sign-in for smart card users, and keep non-persistent VDI federated for now.
- 4
Move the apps
Watch out: The wizard moves SAML apps only, and does not move the signing certificate, Conditional Access or every claim rule.
Ways around it
- Budget hand work per app, using the Migration status details to see which claims need review.
Show the detailed steps (5) →Watch out: Internal apps published through WAP are not moved anywhere when you remove WAP.
Ways around it
- List every published app in the Remote Access Management Console and test a new publishing path for each.
Tools that can do it
- Microsoft Entra application proxyPublishes on-premises web apps, including Kerberos and form-based ones, through outbound-only connectors.
- Strata Maverics Identity OrchestrationSends each user to AD FS or Entra ID depending on whether they have moved, so an app follows your user waves.
- 5
Switch the domains
Out of business hoursWatch out: Each conversion can take up to 60 minutes, and new browser sign-ins may not prompt during that time.
Ways around it
- Convert outside business hours. Modern Outlook, Teams and OneDrive keep working on their existing tokens.
Watch out: The Entra Connect Change user sign-in option converts all federated domains at once.
Ways around it
- Use Update-MgDomain in PowerShell to convert one domain at a time instead.
Turn this phase into dated tasks with the cutover planner
Show the detailed steps (5) → - 6
Remove AD FS
At least one week after the switchWatch out: Once AD FS is uninstalled and its certificates deleted, going back means building a new farm.
Ways around it
- Start this phase only after the agreed rollback period, and keep the Rapid Restore backup.
Watch out: Seamless SSO (automatic sign-in on domain PCs) uses a Kerberos key that does not roll over by itself.
Ways around it
- Roll it over at least every 30 days, or rely on the Primary Refresh Token on Windows 10 and later.
Check your DNS records before and after the change
Show the detailed steps (6) →
- Every domain shows Managed in Get-MgDomain, and staged rollout features are Off.
- Users see the Entra sign-in page with MFA on and off the network, and no sign-in reaches AD FS.
- Every relying party trust is migrated, disabled or kept with a named owner and date.
- Connect Health shows no AD FS sign-ins for a full week before you uninstall.
Tools named in this plan are independent third-party products, not endorsed by the platform vendor and not paid placements. Check the tool's own documentation and run a pilot first.
What does each step involve?
Open a part when you reach it in the plan. Each step says where to go, what to do and what you should see.
About this migrationWhat it covers, limits at a glance
AD FS usually does two jobs: it signs users in to Microsoft 365 through a federated domain, and it acts as the identity provider for other apps through relying party trusts. Moving to Microsoft Entra ID means moving both. Microsoft says you can do them in either order but recommends moving user authentication first.
This guide covers discovery with Connect Health and the AD FS application migration dashboard (which replaced the old AD FS application activity report), choosing password hash sync or pass-through authentication, piloting with staged rollout, moving apps, converting domains, and the decommission steps in Microsoft's AD FS decommission guide. If you also want to retire Active Directory itself, continue with the Active Directory to Entra ID guide.
1What you need before step one
| Need | Details | Where to get it |
|---|---|---|
| Hybrid Identity Administrator | For staged rollout and domain conversion. Microsoft's Option A uses a Global Administrator in Entra Connect. | Microsoft Entra admin center (https://entra.microsoft.com) |
| Cloud Application Administrator or Application Administrator | To use the AD FS application migration wizard and configure enterprise apps. Global Reader or Report Reader can view the dashboard. | Microsoft Entra admin center (https://entra.microsoft.com) |
| AD FS administrator | Local administrator on the AD FS and WAP servers, for PowerShell, auditing and the Connect Health agent. | Your Active Directory |
| Domain Administrator | To enable seamless SSO, which creates the AZUREADSSO computer account. | Your Active Directory |
| Microsoft Entra ID P1 or P2 | Needed for Connect Health and the AD FS application migration wizard. | Microsoft or your partner; check current pricing with them |
| Microsoft Entra Connect Sync, latest version | Microsoft says upgrading first cuts conversion time from potentially hours to minutes. | Install or upgrade Entra Connect Sync |
| Connect Health agent for AD FS | On every AD FS and WAP server, to feed usage data to Entra ID. | https://www.microsoft.com/en-us/download/details.aspx?id=108777 |
| PTA authentication agent (PTA only) | Version 1.5.1742.0 or later, on Windows Server 2016 or later. | https://aka.ms/getauthagent |
| Microsoft Graph PowerShell | For federation settings and domain conversion. | Install Microsoft Graph PowerShell |
2Discover relying parties and back up AD FS5 steps
- 1
Export every relying party trust
Where: Windows PowerShell run as administrator on the primary AD FS serverList all relying party trusts, including disabled ones, with their identifiers. Add an owner, protocol and business criticality for each in your app inventory.
Get-AdfsRelyingPartyTrust | Select-Object Name,Enabled,@{n="Identifier";e={$_.Identifier -join ";"}},WSFedEndpoint,ProtocolProfile | Export-Csv C:\migration\adfs-rps.csv -NoTypeInformationYou should see: C:\migration\adfs-rps.csv has one row per trust, including Microsoft Office 365 Identity Platform. - 2
Turn on AD FS auditing
Where: Windows PowerShell run as administrator on the primary AD FS server (repeat on each AD FS server)Connect Health usage data needs AD FS audit logs, which are not fully enabled by default. Check the AD FS service account has Generate security audits in Local Security Policy (Security Settings > Local Policies > User Rights Assignment), then run the commands below. In AD FS Management, under Edit Federation Service Properties > Events, check Success audits and Failure audits are ticked. Make sure no Group Policy disables AD FS auditing.
auditpol.exe /set /subcategory:"Application Generated" /failure:enable /success:enable Set-AdfsProperties -AuditLevel Verbose Get-AdfsProperties | Select-Object AuditLevelYou should see: AuditLevel shows Verbose, and Event Viewer shows events with source AD FS Auditing in the Security log. - 3
Install the Connect Health agent for AD FS
Where: Each AD FS and Web Application Proxy server, in a browser and then the installerDownload the agent from
https://www.microsoft.com/en-us/download/details.aspx?id=108777, run it, select Install and sign in with an account allowed to register agents when prompted. Install it on the WAP servers too.Test-MicrosoftEntraConnectHealthConnectivity -Role ADFSYou should see: The connectivity test passes and the farm appears under AD FS services in Microsoft Entra Connect Health (https://aka.ms/aadconnecthealth). - 4
Save the federation settings for rollback
Where: PowerShell 7 on your admin PC, connected with Connect-MgGraphRecord the federation configuration of each federated domain. Look for customised PreferredAuthenticationProtocol, federatedIdpMfaBehavior, SupportsMfa and PromptLoginBehavior.
Connect-MgGraph -Scopes "Domain.Read.All" Get-MgDomain | Select-Object Id,AuthenticationType Get-MgDomainFederationConfiguration -DomainId contoso.com | Format-List * | Out-File C:\migration\contoso-federation.txtYou should see: A text file per federated domain with its federation settings. - 5
Back up the AD FS farm and Microsoft 365 trust
Where: Windows PowerShell run as administrator on the primary AD FS serverTake a backup with the AD FS Rapid Restore Tool (download and usage on Microsoft's Rapid Restore Tool page), and export the Microsoft 365 relying party trust with its claim rules.
(Get-AdfsRelyingPartyTrust -Name "Microsoft Office 365 Identity Platform") | Export-CliXML "C:\temp\O365-RelyingPartyTrust.xml"You should see: A Rapid Restore backup file and C:\temp\O365-RelyingPartyTrust.xml are stored off the server.
3Choose and prepare the cloud sign-in method4 steps
| Method | How it works | Microsoft's guidance |
|---|---|---|
| Password hash sync (PHS) | Entra Connect syncs a hash of the password hash to Entra ID | Recommended. Works if on-premises AD is unavailable |
| Pass-through authentication (PTA) | Agents on-premises check passwords against AD in real time | Use only where regulation forbids syncing password information. At least 3 agents in production |
| Certificate-based authentication (CBA) | Users sign in with X.509 certificates from your PKI | Phishing-resistant; a replacement for AD FS smart card sign-in |
| Seamless SSO | Kerberos SSO for domain-joined PCs on the corporate network | For Windows 7 and 8.1; Windows 10 and later use the Primary Refresh Token |
- 1
Enable password hash sync
Where: Microsoft Entra Connect on the sync server (Start > Microsoft Entra Connect > Configure) > Customize synchronization options > Optional featuresSign in, step through to Optional features, tick Password hash synchronization, and complete the wizard with Configure. This does not change how federated users sign in yet.
You should see: In the Entra admin center under Entra ID > Entra Connect > Connect Sync, Password Hash Sync shows Enabled, and a full password sync cycle completes. - 2
Install PTA agents (PTA only)
Where: Two or more domain-joined Windows Server 2016 or later servers that are not the Entra Connect server, in a browserDownload the agent from
https://aka.ms/getauthagentand install it, signing in when prompted. Microsoft recommends at least three agents in production and allows up to 40 per tenant. Agents need outbound 443 and 80, and access to login.windows.net and login.microsoftonline.com for registration. Treat these servers as Tier 0.You should see: Entra ID > Entra Connect > Connect Sync > Pass-through authentication lists every agent with status Active. - 3
Enable seamless SSO if you have older Windows clients
Where: Windows PowerShell run as administrator on the Entra Connect server, in %ProgramFiles%\Microsoft Azure Active Directory ConnectImport the modules, sign in as Hybrid Identity Administrator when the window opens, then enable the forest with domain administrator credentials. Deploy the seamless SSO URLs to the intranet zone by Group Policy as Microsoft's quickstart describes.
Import-Module "$env:ProgramFiles\Microsoft Azure AD Sync\Bin\ADSync\ADSync.psd1" Import-Module .\AzureADSSO.psd1 New-AzureADSSOAuthenticationContext $creds = Get-Credential Enable-AzureADSSOForest -OnPremCredentials $creds Get-AzureADSSOStatus | ConvertFrom-JsonYou should see: Get-AzureADSSOStatus lists your forest under Domains, and an AZUREADSSOACC computer account exists in AD. - 4
Check UPN sync for managed users
Where: PowerShell 7 on your admin PC, connected with Connect-MgGraphMicrosoft says the
synchronizeUpnForManagedUsersEnabledsetting must be true after moving to cloud authentication, or UPN changes for licensed users will not sync. Check it now.Connect-MgGraph -Scopes "OnPremDirectorySynchronization.Read.All" (Get-MgDirectoryOnPremiseSynchronization).Features | Format-List SynchronizeUpnForManagedUsersEnabledYou should see: SynchronizeUpnForManagedUsersEnabled : True
4Replace AD FS access rules and prepare users3 steps
- 1
Map AD FS access control policies to Conditional Access
Where: AD FS Management on the AD FS server (Relying Party Trusts > each trust > Edit Access Control Policy), then Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Conditional Access > PoliciesFor each trust, note who is permitted, from which networks, and whether MFA is required. Build matching Conditional Access policies scoped to a pilot group and set to Report-only. Add a policy to block legacy authentication, as Microsoft recommends.
You should see: Report-only results in the sign-in logs match what AD FS enforces today. - 2
Create the pilot groups
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Groups > New groupCreate cloud-only security groups with assigned membership for each wave. Staged rollout does not support nested or dynamic groups, and limits a new group to 200 users when you first add it.
You should see: Pilot groups exist with direct user members only. - 3
Set up branding and MFA registration
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Custom branding, and Entra ID > Authentication methods > PoliciesConfigure company branding so users recognise the new sign-in page. Enable the methods you want (Microsoft Authenticator, passkeys, Temporary Access Pass) and ask pilot users to register at
https://aka.ms/mysecurityinfo.You should see: Pilot users show as MFA capable in Authentication methods > User registration details.
5Pilot with staged rollout3 steps
- 1
Turn on staged rollout for the pilot group
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Entra Connect > Connect sync > Enable staged rollout for managed user sign-inSlide Password Hash Sync (or Pass-through authentication) to On, and Seamless single sign-on if you use it. Do not combine PHS and PTA. Add the pilot group to each feature. Users in a new group switch straight away; edits to an existing group can take up to 24 hours.
You should see: The staged rollout page shows the features On with your pilot group, and the audit log records the change. - 2
Issue a Temporary Access Pass to new pilot users
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Users > select the user > Authentication methods > Add authentication method > Temporary Access PassA user newly added to staged rollout needs one more AD FS sign-in before managed authentication applies. Microsoft's workaround is a TAP straight after adding them, so they sign in to Entra ID and register their methods without going to AD FS.
You should see: The user signs in with the TAP and registers Microsoft Authenticator or a passkey. - 3
Validate sign-in outside and inside the network
Where: A private browser window at https://myapps.microsoft.com, then Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Monitoring & health > Sign-in logsOff the corporate network, enter a pilot user's UPN: they should see the Entra sign-in page, not AD FS. On the network with seamless SSO, they should see "Trying to sign you in" and sign in silently. Filter the sign-in logs by the user and check the result. Check the AD FS event logs for any pilot users still reaching AD FS.
You should see: Pilot sign-ins succeed in Entra ID and no longer appear in the AD FS logs.
6Move apps with the AD FS application migration wizard5 steps
- 1
Open the AD FS application migration dashboard
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Enterprise apps > Usage & insights > AD FS application migrationThe dashboard lists relying parties with sign-ins in the last 1, 7 or 30 days. Use All apps to see usage, and select the Migration status link for each app to see which configuration and claim rule tests passed. Status is Ready to migrate, Needs review or Additional steps required.
You should see: Each active relying party appears with a migration status. Reconcile the list with your PowerShell export from Step 1. - 2
Migrate a SAML app with Begin migration
Where: AD FS application migration > Ready to migrate tab > Begin migrationOn Basics keep or change the app name and optionally pick a gallery template. Review the read-only User & groups (taken from the trust's access control policy; groups must be synced), SAML configurations (identifier and reply URL) and Claims tabs, read Next steps, then select Create on Review + create.
You should see: A notification reads Application migration successful, and the app appears on the Ready to configure tab. It stays inactive until the app sends sign-ins to Entra ID. - 3
Finish the app configuration and point the app at Entra ID
Where: Ready to configure tab > Configure application in Microsoft Entra, then the app's own admin settingsOn the SAML-based Sign-on page, add any claims the wizard could not move and download the Federation Metadata XML or certificate: the wizard does not migrate the AD FS signing certificate. Add Conditional Access for the app. Follow Microsoft's stages: point a test instance of the app at Entra ID first, then production, by replacing the AD FS metadata or URLs in the app.
You should see: Test users reach the app from https://myapps.microsoft.com and their sign-ins appear under the enterprise app's Sign-in logs. - 4
Configure OIDC, OAuth, WS-Fed and legacy apps by hand
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > App registrations > New registration, or Enterprise apps > New applicationRegister OAuth 2.0, OpenID Connect and WS-Federation line-of-business apps as app registrations, and custom SAML or WS-Fed apps as non-gallery enterprise apps. Publish apps that use Kerberos or header-based authentication through Microsoft Entra application proxy or a Secure Hybrid Access partner.
You should see: Each non-SAML app has an Entra registration and signs in a test user. - 5
Disable, then remove, each migrated trust
Where: Windows PowerShell run as administrator on the primary AD FS serverWhen an app is live on Entra ID, disable its trust first so you can re-enable it quickly if something was missed. Remove it after the app owner signs off.
Disable-AdfsRelyingPartyTrust -TargetName "Contoso Payroll" # after sign-off Remove-AdfsRelyingPartyTrust -TargetName "Contoso Payroll"You should see: The trust no longer appears in AD FS Management, and the app keeps working through Entra ID.
7Convert domains from federated to managed5 steps
- 1
Check how federation was configured
Where: Microsoft Entra Connect on the sync server (Start > Microsoft Entra Connect > Configure) > Additional tasks > View federation configuration (under Manage Federation)If the AD FS farm is listed, Entra Connect set it up and you can use Option A below. If not, use Option B with PowerShell.
You should see: You know whether to use Option A or Option B. - 2
Option A: change user sign-in in Entra Connect
Where: Microsoft Entra Connect on the sync server (Start > Microsoft Entra Connect > Configure) > Change user sign-inSign in with a Global Administrator. On User sign-in choose Password hash synchronization and tick Do not convert user accounts, or choose Pass-through authentication; tick Enable single sign-on if you need seamless SSO. Enter domain administrator credentials on Enable single sign-on, keep Start the synchronization process when configuration completes ticked and select Configure. This converts all federated domains at once.
You should see: In the Entra admin center, Entra Connect shows Federation Disabled and your chosen sign-in method Enabled. - 3
Option B: convert each domain with Microsoft Graph PowerShell
Where: PowerShell 7 on your admin PC, connected with Connect-MgGraph, out of business hoursFor PTA, first confirm every agent shows Active, or you risk an outage. Convert one domain at a time, starting with a test domain or the smallest. Allow up to 60 minutes for the change to take effect. If you used PTA, update the sign-in method in Entra Connect afterwards so it recognises PTA as enabled.
Connect-MgGraph -Scopes "Domain.ReadWrite.All","Directory.AccessAsUser.All" Update-MgDomain -DomainId contoso.com -AuthenticationType "Managed" Get-MgDomain -DomainId contoso.com | Select-Object Id,AuthenticationTypeYou should see: AuthenticationType shows Managed, and a user outside the pilot signs in on the Entra sign-in page without reaching AD FS. - 4
Turn off staged rollout
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Entra Connect > Connect sync > Enable staged rollout for managed user sign-inMicrosoft says staged rollout is not a permanent state. Once all domains are managed, slide each feature back to Off.
You should see: All staged rollout features show Off and sign-ins keep working. - 5
Check hybrid joined devices
Where: Command Prompt on a sample of hybrid joined Windows PCsRun
dsregcmd /statusand check the device still gets a Primary Refresh Token. Microsoft notes Windows 10 earlier than 1903, and users with non-routable UPNs, fell back to AD FS WS-Trust during staged rollout and need attention now. If your hybrid join SCP pointed at AD FS, re-run Configure device options in Entra Connect for a managed domain.dsregcmd /statusYou should see: AzureAdJoined : YES and AzureAdPrt : YES on each sample device.
8Decommission AD FS and WAP6 steps
- 1
Confirm nothing still uses AD FS
Where: Microsoft Entra Connect Health (https://aka.ms/aadconnecthealth) > AD FS services > your farm, and Event Viewer on each AD FS serverWait at least one week after moving authentication. Check Connect Health usage and the AD FS event logs for any successful or failed sign-ins. Any traffic means a trust or client still depends on AD FS. When there is none, remove the Microsoft 365 trust.
Remove-AdfsRelyingPartyTrust -TargetName "Microsoft Office 365 Identity Platform"You should see: No sign-in events for a full week, and no relying party trusts left with traffic. - 2
Take a final backup and note the certificate container
Where: Windows PowerShell run as administrator on the primary AD FS serverOptionally take a final Rapid Restore Tool backup. Note the CertificateSharingContainer DN; you delete it at the end. If the AD FS configuration database is on SQL Server, delete that database before uninstalling.
Get-AdfsProperties | Select-Object CertificateSharingContainerYou should see: The DN is recorded in your Decommission checklist. - 3
Remove load balancer and DNS entries
Where: Your load balancer management console and DNS Manager (dnsmgmt.msc) or public DNS hostRemove AD FS entries from internal and external load balancers, and delete the DNS records for the farm name (for example
sts.contoso.com).You should see: nslookup sts.contoso.com no longer resolves. - 4
Uninstall WAP
Where: Each Web Application Proxy server: Remote Access Management Console, then Windows PowerShell as administratorRemove any published web applications for AD FS, then uninstall the role.
Uninstall-WindowsFeature Web-Application-Proxy,CMAK,RSAT-RemoteAccessYou should see: The command reports Success and the Remote Access role is gone. - 5
Uninstall AD FS, secondary nodes first
Where: Windows PowerShell as administrator on each AD FS server, secondary servers before the primaryUninstall AD FS and the Windows Internal Database, then delete the database files.
Uninstall-WindowsFeature ADFS-Federation,Windows-Internal-Database del C:\Windows\WID\data\adfs*You should see: The feature is removed and no adfs* files remain in C:\Windows\WID\data. - 6
Clean up certificates, servers and AD
Where: Certificates console (certlm.msc) on each server, then ADSI Edit (adsiedit.msc) on a domain controllerDelete the AD FS SSL certificates from each server, then re-image the servers with full disk formatting. Delete the AD FS service account. In ADSI Edit, remove the contents of the CertificateSharingContainer DN you recorded.
You should see: The Decommission checklist shows servers wiped, the service account deleted and the container emptied.
What can go wrong, and how do you avoid it?
The detail behind the plan: options compared, and what experienced engineers check first. Tap any item.
Compare all the ways to do this3 options
Staged rollout, then domain conversion and app waves
Medium effortBest for: Most organisations with Microsoft 365 and several relying party trusts
- Pilot groups test cloud sign-in while AD FS stays as fallback
- App migration wizard handles SAML basics in one click
- Weeks of running both
- Staged rollout group limits and unsupported scenarios to plan around
Direct switch with Entra Connect Change user sign-in
Low effortBest for: Small organisations whose AD FS farm was set up by Entra Connect and serves only Microsoft 365
- One wizard converts all federated domains
- Fewest steps
- Every user changes at once
- Only available if Entra Connect configured AD FS originally
Move Microsoft 365 now, keep AD FS for some apps
Medium effortBest for: Organisations with legacy or header-based apps that cannot move yet
- Removes the Microsoft 365 outage risk quickly
- Legacy apps can later move behind Microsoft Entra application proxy
- AD FS and WAP stay patched and monitored meanwhile
- Two identity providers for apps
Use staged rollout unless AD FS serves only Microsoft 365 and you can change everyone in one window. If a few apps cannot leave AD FS, convert the domains anyway and keep a small AD FS farm for those apps until they move.
Turn on password hash sync even if you pick pass-through authenticationReduces risk
Microsoft recommends password hash sync for cloud authentication, and the decommission guide says PTA should only be used where regulation forbids syncing password information. If PTA agents or AD fail, PHS gives you a sign-in method you can switch to.
Enable Password hash synchronization on Entra Connect's Optional features page before the pilot (Step 2), and let a full cycle finish, whichever method you choose.
Move user sign-in before appsReduces risk
Microsoft says user authentication and app migration can happen in any order but recommends user authentication first. It removes the Microsoft 365 dependency on AD FS, which is usually the busiest relying party.
Plan the staged rollout pilot and domain conversion (Steps 4 and 6) as the first milestone, and run app waves in parallel or after.
Do not rely on the migration dashboard alone for your app listReduces risk
The AD FS application migration dashboard only shows relying parties with user sign-ins in the last 30 days and hides Microsoft relying parties. Quarterly or annual apps (payroll year-end, audit portals) do not appear.
Export every relying party trust with PowerShell (Step 1) and reconcile it against the dashboard. Ask each owner when the app is next used before you mark a trust as unused.
Expect hand work for claims, certificates and non-SAML appsSaves time
The wizard supports SAML apps only. It does not migrate the signing certificate, Conditional Access, or OIDC, OAuth and WS-Fed configurations, and not every AD FS claim rule translates as-is.
Use the Migration status details for each app to see which claim rules need review. Budget time per app to upload the Entra signing certificate or metadata to the app, rebuild missing claims and recreate access rules as Conditional Access.
Find users and devices that staged rollout cannot testUser impact
Legacy authentication such as POP3 and SMTP is not supported in staged rollout. Windows Hello for Business hybrid certificate trust with AD FS as registration authority and smart card users are not supported. Non-persistent VDI must stay on a federated domain.
Check sign-in logs for legacy protocols, list WHfB certificate trust and smart card users, and plan certificate-based authentication or a separate path for them. Keep non-persistent VDI users federated until you have a supported design.
Plan the domain conversion windowUser impact
Microsoft says converting a domain from federated to managed can take up to 60 minutes, and new browser sign-ins may not prompt for credentials during that time.
Convert out of business hours, one domain at a time, starting with a test domain or the one with fewest users, as Microsoft suggests. Modern authentication clients keep working on their refresh tokens.
Decide where MFA happens before you cut overReduces risk
With a federated domain, MFA may come from AD FS (for example an MFA adapter) or Entra ID. The federatedIdpMfaBehavior setting controls whether Entra ID accepts MFA done by AD FS. After conversion, only Entra MFA applies.
Record the current value with Get-MgDomainFederationConfiguration (Step 1). Get users registered for Entra MFA during the pilot and replace AD FS access control policies with Conditional Access before the domain converts.
If AD FS uses a third-party MFA adapter such as Duo, Entra external MFA lets that provider satisfy Entra ID MFA requirements after conversion, so users keep the same second factor instead of re-registering on Entra MFA. It needs Entra ID P1 or P2 for each user.
- Microsoft Entra external MFALets users meet an Entra ID MFA requirement with an external provider while Entra ID keeps policy evaluation.
- Duo for Microsoft Entra ID external MFADuo is recognised as an MFA method in Entra ID and can satisfy Conditional Access. Running the old Duo custom control alongside it can prompt some users twice.
AD FS sign-in page customisations do not carry overUser impact
Microsoft says onload.js customisations cannot be duplicated in Entra ID, and users must sign in with a full UPN or email. Organisation branding is not available on free Entra ID licences unless you have a Microsoft 365 licence.
Set up company branding in Entra ID before the pilot, and tell users that the sign-in page and username format change.
Check password expiry behaviour for synced usersCompliance
By default, password hash sync sets synced users' cloud passwords to never expire, and staged rollout users get no expiry either. Users with an active session are not prompted to change an expired password.
If users only use cloud services and must follow an expiry policy, review CloudPasswordPolicyForPasswordSyncedUsersEnabled in Microsoft's PHS article with your security owner before cutover.
Watch for at least a week before removing AD FSReduces risk
Microsoft's decommission guide says to test for at least one week after moving authentication and to check the AD FS event logs or Connect Health for any sign-in successes or failures, because they mean the servers are still in use.
Keep Connect Health running through that week, review AD FS usage for every remaining trust, and take a final Rapid Restore Tool backup before you uninstall.
Roll over the seamless SSO keyCompliance
Seamless SSO creates an AZUREADSSO computer account whose Kerberos key does not roll over by itself. Microsoft recommends rolling it over at least every 30 days.
Add the rollover to your operations calendar, or use PRT-based SSO on Windows 10 and later, which Microsoft recommends for those devices.
Find a new home for apps published through Web Application ProxyUser impact
Web Application Proxy often publishes internal web apps that use Windows Integrated Authentication through Kerberos constrained delegation. Microsoft's decommission guide tells you to remove the published web applications before you uninstall WAP, but it does not move them anywhere, and the app migration wizard only handles SAML apps.
Open the Remote Access Management Console on each WAP server and list every published application that is not an AD FS endpoint. Give each one a replacement publishing path and test it externally before you remove WAP.
Microsoft Entra application proxy publishes the same internal apps through Entra ID, with Kerberos constrained delegation for Integrated Windows Authentication apps and outbound-only connectors instead of WAP. An identity orchestration product can also move users of an app from AD FS to Entra ID in groups.
- Microsoft Entra application proxyPublishes on-premises web apps, including Kerberos (IWA) and form-based apps, through outbound-only private network connectors.
- Strata Maverics Identity OrchestrationRoutes each sign-in to AD FS or Entra ID depending on whether the user has moved, so an app follows your user waves. Changes go in Maverics configuration, not application code.
How do you check it worked, or roll back?
Full validation checklist9 checks
Run these before you declare the migration complete. Record the results in the data validation report.
| Check | How to check | What good looks like |
|---|---|---|
| Every relying party trust is accounted for | Compare the | Each trust is marked migrated, disabled, or kept with a named owner and date; none are unexplained. |
| Domains are managed | In PowerShell 7 connected to Microsoft Graph, run | Every domain you converted shows Managed; staged rollout features are back to Off. |
| Users sign in on the Entra page with MFA, on and off the network | In a private browser at https://myapps.microsoft.com, sign in as test users off the corporate network, then on it with seamless SSO. In the Microsoft Entra admin center, filter the sign-in logs by those users. | Users see the branded Entra sign-in page (or sign in silently on the network), MFA and Conditional Access apply, and no sign-in reaches AD FS. |
| Password hash sync and UPN sync are working | In the Microsoft Entra admin center check the last sync time on the Entra Connect page. Run | Password sync is current, SynchronizeUpnForManagedUsersEnabled is True and the UPN change appears in Entra ID after the next cycle. |
| PTA agents are active (PTA only) | In the Microsoft Entra admin center open Entra Connect > Pass-through authentication and review the agent list. | At least the number of agents you planned show Active, on separate servers. |
| Migrated apps accept Entra ID tokens | For each migrated app, sign in from https://myapps.microsoft.com as a test user from each role group, and check the sign-in log entry for the enterprise application. | Sign-in succeeds with the expected claims and roles; the app owner signs off in the pilot test plan. |
| Outlook, Teams and OneDrive clients stay signed in | After domain conversion, restart a sample of PCs and phones and open Outlook, Teams and OneDrive. | Modern authentication clients keep working or prompt once for the Entra sign-in page. |
| Hybrid joined devices still get a Primary Refresh Token | On a sample of hybrid joined PCs, run | AzureAdPrt is YES on every sampled device. |
| AD FS receives no traffic | Check Microsoft Entra Connect Health (https://aka.ms/aadconnecthealth) > AD FS services > your farm, and the AD FS event logs, for at least one week after the conversion. | No successful or failed sign-ins appear in Connect Health or the event logs. |
Rollback planIf it goes wrong
Roll back if
- Users cannot sign in after a domain converts and the cause is not fixed within the change window
- PTA agents go inactive and users fail to sign in
- A migrated app rejects SAML responses and the app owner cannot fix it on the day
- Hybrid joined devices stop receiving a Primary Refresh Token after conversion
Point of no return
Until you uninstall AD FS, every change here is reversible: apps can be pointed back at AD FS and domains can be federated again from your saved settings. Removing the Microsoft 365 relying party trust, uninstalling AD FS and WAP, deleting the farm DNS records and certificates, and cleaning the CertificateSharingContainer is the point of no return. After that, going back means building a new farm.
- 1
Pull pilot users out of staged rollout
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Entra Connect > Connect sync > Enable staged rollout for managed user sign-inRemove the affected group from each feature, or slide the feature to Off.
You should see: Affected users are sent to the AD FS sign-in page again. - 2
Re-enable a disabled relying party trust
Where: Windows PowerShell run as administrator on the primary AD FS serverRun
Enable-AdfsRelyingPartyTrust -TargetName "Contoso Payroll", then restore the AD FS metadata or URLs in the app's own admin settings.You should see: Users sign in to the app through AD FS and the AD FS event log shows the sign-ins. - 3
Clean up a part-migrated app
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Enterprise apps and App registrationsThe migration wizard does not clean up after itself. If the app never switched to Entra ID, delete the enterprise application and its app registration.
You should see: The app no longer appears in Enterprise apps or App registrations. - 4
Federate the domain again
Where: PowerShell 7 on your admin PC, connected with Connect-MgGraph using Domain.ReadWrite.AllRun
New-MgDomainFederationConfigurationwith the values saved inC:\migration\contoso-federation.txt, then add any extra claim rules from the exported Microsoft 365 trust. If Entra Connect manages the farm, you can instead use Change user sign-in and select Federation with AD FS.You should see:Get-MgDomain -DomainId contoso.comshows Federated and users reach AD FS. - 5
Restore the AD FS farm if it was damaged
Where: The primary AD FS server, using the AD FS Rapid Restore ToolRestore the backup you took in Step 1 as described on the Microsoft Learn AD FS Rapid Restore Tool page, then re-import the Microsoft 365 trust from
O365-RelyingPartyTrust.xmlif needed.You should see: AD FS Management shows the farm, its trusts and certificates. - 6
Record what cannot be undone
Where: Your Rollback plan and Decommission checklistNote that removed trusts, an uninstalled farm, deleted certificates and the cleaned CertificateSharingContainer cannot be recovered without the Rapid Restore backup or a rebuild. Do not start the decommission section until the rollback period has ended.
You should see: The decommission start date is after the agreed rollback period, signed off by the change owner.
Agree the triggers and who decides before the go / no-go meeting. Use the rollback plan template.
Common problems and fixes7 errors
Users cannot sign in after converting the domain to PTACause: PTA agents were not Active, or were blocked from reaching Entra ID.
Fix: Check agent status under Pass-through authentication, fix connectivity, or switch the sign-in method to password hash sync if it is already synced.
UPN changes no longer sync for licensed usersCause: synchronizeUpnForManagedUsersEnabled is false.
Fix: Enable the feature as described in Microsoft's Entra Connect sync service features article.
An app is missing from the AD FS application migration dashboardCause: It had no sign-ins in the last 30 days, it is a Microsoft relying party, or Connect Health or AD FS auditing is not set up.
Fix: Install the agent on every AD FS and WAP server, turn on verbose auditing, and configure the app by hand if it is rarely used.
App rejects the SAML response after migration (signature or certificate error)Cause: The wizard does not migrate the AD FS signing certificate.
Fix: Upload the Entra federation metadata or signing certificate to the app.
Pilot users are still sent to AD FSCause: The app sends a domain_hint, the client uses legacy authentication, or the user needs one more federated sign-in after being added.
Fix: Test domain_hint apps after conversion, move clients to modern authentication, and use a Temporary Access Pass for new pilot users.
Hybrid joined device has no PRT after conversionCause: Windows 10 earlier than 1903, or the user's UPN is not routable, so the device relied on AD FS WS-Trust.
Fix: Update Windows, fix the UPN suffix to a verified domain, and re-check with dsregcmd /status.
Users with expired AD passwords are not asked to change them in the cloudCause: PHS sets synced users to never expire in the cloud by default.
Fix: Review CloudPasswordPolicyForPasswordSyncedUsersEnabled with your security owner.
Frequently asked questions
Should I move apps or users off AD FS first?
Microsoft says either order works but recommends migrating user authentication first.
Password hash sync or pass-through authentication?
Microsoft recommends password hash sync. Its decommission guide says PTA should only be used where regulation forbids syncing password information.
What happened to the AD FS application activity report?
It is now the AD FS application migration dashboard under Enterprise apps > Usage & insights in the Entra admin center, which also includes a one-click SAML migration wizard.
Does the AD FS migration wizard move OIDC or WS-Fed apps?
No. It supports SAML apps only. Configure OIDC, OAuth and WS-Fed apps as app registrations or enterprise apps by hand.
How long should I wait before decommissioning AD FS?
Microsoft says to test for at least one week after moving authentication and to confirm no sign-ins still reach AD FS.
Can I roll back the domain conversion?
Yes. Federate the domain again with New-MgDomainFederationConfiguration using the federation settings you documented before the change.
Official sources
12 official pages this guide is based on
Vendors change limits and features, so confirm details on the source before you rely on them. Last checked 4 Nov 2026.