Anavem
Languagefr
How to Migrate On-Premises Active Directory to Microsoft Entra ID

How to Migrate On-Premises Active Directory to Microsoft Entra ID

Complete enterprise migration from on-premises Active Directory to Microsoft Entra ID with phased execution, security controls, and business continuity planning.

Evan MaelEvan Mael
March 26, 2026 25 min
hardmicrosoft-entra-id 10 steps 25 min

Why Migrate from On-Premises Active Directory to Microsoft Entra ID?

Enterprise organizations are rapidly transitioning from traditional on-premises Active Directory to Microsoft Entra ID (formerly Azure AD) to modernize their identity infrastructure and embrace cloud-first security models. This migration represents more than a simple lift-and-shift—it's a fundamental transformation of how your organization manages identity, authentication, and access control.

The business drivers for this migration have intensified significantly in 2026. Microsoft has officially deprecated legacy authentication protocols, with Basic Authentication for Exchange Online retired on March 31, 2026, and new tenants automatically blocking legacy protocols since January 15, 2026. Additionally, Microsoft's strategic direction has shifted away from Hybrid Azure AD Join toward native Entra ID Join combined with Microsoft Intune as the recommended long-term architecture.

What Does This Migration Actually Accomplish?

This comprehensive migration eliminates your dependency on on-premises domain controllers while providing enhanced security capabilities that weren't possible with traditional Active Directory. You'll gain access to advanced threat protection through Identity Protection, Zero Trust security models via Conditional Access, and modern authentication methods including phishing-resistant MFA options like FIDO2 and certificate-based authentication.

The migration also positions your organization for mandatory security requirements coming in 2026, including MFA enforcement for Azure portal access starting October 1, 2026, and Security Defaults becoming mandatory for new tenants after June 30, 2026. By completing this migration, you'll ensure compliance with Microsoft's evolving security standards while reducing infrastructure overhead and improving user experience through seamless single sign-on across all Microsoft 365 services.

Implementation Guide

Full Procedure

01

Assess Current Environment and Plan Migration Strategy

Start by evaluating your existing Active Directory infrastructure and determining the optimal migration path. As of 2026, Microsoft recommends native Entra ID Join with Intune over Hybrid Join for long-term deployments.

Run this PowerShell command on your domain controller to check forest functional level:

Get-ADForest | Select-Object Name, ForestMode

Document your current authentication methods and applications. Critical: Basic Authentication for Exchange Online was retired on March 31, 2026, so ensure all applications use modern authentication.

Create an assessment spreadsheet with these columns:

  • Application name
  • Authentication method (Kerberos, NTLM, Basic Auth)
  • Dependencies on on-premises AD
  • Migration priority (Critical/High/Medium/Low)
Warning: Legacy authentication protocols are disabled for new tenants as of January 15, 2026. Plan application updates before migration.

Verification: Run Get-ADDomain | Select-Object DomainMode to confirm domain functional level meets requirements (2003 or higher).

02

Choose and Install Microsoft Entra Connect or Cloud Sync

Select your synchronization tool based on your environment complexity. For new deployments in 2026, Microsoft Entra Cloud Sync is recommended for its lightweight, agent-based approach.

For Microsoft Entra Connect (traditional approach):

Prepare your Windows Server 2016+ machine with these prerequisites:

# Check .NET version (requires 4.6.2+)
Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" -Name Release | ForEach-Object {$_.Release -ge 394802}

# Set PowerShell execution policy
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine

# Enable TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

For Microsoft Entra Cloud Sync (recommended):

Download the provisioning agent (build 1.1.1370.0 or later) from the Microsoft Entra admin center. Install .NET 4.7.1+ runtime first:

# Verify .NET 4.7.1+ is installed
Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" -Name Release | ForEach-Object {$_.Release -ge 461808}

# Set execution policy for Cloud Sync
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
Pro tip: Cloud Sync supports installation directly on domain controllers and offers better scalability for multi-forest environments.

Verification: After installation, check the service status with Get-Service -Name "Microsoft Azure AD Connect*" for Connect or Get-Service -Name "Microsoft Azure AD Connect Provisioning Agent" for Cloud Sync.

03

Configure Initial Directory Synchronization

Configure your chosen synchronization tool to establish the connection between on-premises AD and Microsoft Entra ID.

For Microsoft Entra Connect:

Run the installation wizard and select Express Settings for a basic configuration, or Custom for granular control:

# Launch the configuration wizard
Start-Process "C:\Program Files\Microsoft Azure Active Directory Connect\AzureADConnect.exe"

During configuration:

  • Enter your Microsoft Entra ID Global Administrator credentials
  • Provide Enterprise Administrator credentials for on-premises AD
  • Select Password Hash Synchronization as the sign-in method (recommended for initial setup)
  • Choose which OUs to synchronize (start with a pilot group)

For Microsoft Entra Cloud Sync:

Create a group Managed Service Account (gMSA) for enhanced security:

# Create gMSA account (run on domain controller)
New-ADServiceAccount -Name "AADCloudSyncGMSA" -DNSHostName "yourdomain.com" -PrincipalsAllowedToRetrieveManagedPassword "Domain Controllers"

Configure the provisioning agent through the Microsoft Entra admin center by selecting the OUs and groups to synchronize.

Warning: Start with a small pilot group (10-50 users) to test synchronization before expanding to the entire organization.

Verification: Check synchronization status in the Microsoft Entra admin center under Identity > Hybrid identity > Microsoft Entra Connect. Look for "Healthy" status and recent sync timestamp.

04

Implement Modern Authentication and Security Controls

Configure mandatory security controls required for 2026 compliance. MFA enforcement for Azure portal access becomes mandatory on October 1, 2026.

Enable Security Defaults for new tenants (automatically enabled after June 30, 2026):

# Connect to Microsoft Graph PowerShell
Connect-MgGraph -Scopes "Policy.ReadWrite.ConditionalAccess"

# Check Security Defaults status
Get-MgPolicyIdentitySecurityDefaultEnforcementPolicy

Configure Conditional Access policies for enhanced security:

  1. Navigate to Microsoft Entra admin center > Protection > Conditional Access
  2. Create a new policy named "Block Legacy Authentication"
  3. Set conditions: All users, All cloud apps
  4. Set client apps: Exchange ActiveSync clients, Other clients
  5. Grant: Block access

Enable Multi-Factor Authentication for all users:

# Enable MFA for all users using PowerShell
$users = Get-MgUser -All
foreach ($user in $users) {
    Update-MgUser -UserId $user.Id -AccountEnabled $true
    # Configure MFA requirements through Conditional Access
}

Configure Authentication Strength policies for phishing-resistant MFA:

  • Go to Protection > Authentication methods > Authentication strengths
  • Create custom strength requiring FIDO2 or certificate-based authentication
  • Apply to sensitive applications and admin roles
Pro tip: Enable Continuous Access Evaluation (CAE) for supported applications to improve security posture and reduce token lifetime risks.

Verification: Test modern authentication by attempting to access Exchange Online with a legacy client - it should be blocked. Check MFA enrollment at Identity > Users > Per-user MFA.

05

Configure Device Management Strategy

Implement device management aligned with Microsoft's 2026 recommendation of native Entra ID Join with Intune rather than Hybrid Join.

For existing Hybrid Joined devices, plan the transition to native Entra ID Join:

# Check current device join status
dsregcmd /status

# Look for "AzureAdJoined : YES" and "DomainJoined : YES" (Hybrid)
# Target state: "AzureAdJoined : YES" and "DomainJoined : NO" (Native)

Configure Automatic Enrollment in Intune:

  1. Navigate to Microsoft Entra admin center > Devices > Enroll devices
  2. Select "Windows enrollment"
  3. Configure MDM user scope to "All" or specific groups
  4. Set MDM URLs to Microsoft Intune endpoints

Create device compliance policies in Microsoft Intune:

  • Require device encryption
  • Set minimum OS version (Windows 11 22H2 recommended)
  • Require antivirus software
  • Configure password complexity requirements

For new device deployments, use Windows Autopilot:

# Install Windows Autopilot PowerShell module
Install-Module -Name WindowsAutopilotIntune -Force

# Import device hardware hashes
Import-AutopilotDevice -csvFile "C:\devices.csv"
Warning: Hybrid Join is no longer Microsoft's recommended long-term strategy. Plan for native Entra ID Join to align with future support and feature development.

Verification: Check device compliance in Microsoft Intune admin center > Devices > Compliance policies. Verify devices show as "Compliant" status.

06

Migrate User Authentication Methods

Transition users from on-premises authentication to cloud-based methods while maintaining security and user experience.

Configure Password Hash Synchronization (PHS) as the primary authentication method:

# Enable PHS using Microsoft Entra Connect PowerShell
Import-Module ADSync
Set-ADSyncScheduler -SyncCycleEnabled $true
Start-ADSyncSyncCycle -PolicyType Delta

For organizations requiring single sign-on, configure Seamless SSO:

# Enable Seamless SSO (run on Entra Connect server)
Import-Module "C:\Program Files\Microsoft Azure Active Directory Connect\AzureADSSO.psd1"
New-AzureADSSOForest -OnPremCredentials (Get-Credential)

Migrate from Pass-through Authentication (PTA) to PHS for better resilience:

  1. In Microsoft Entra Connect, change sign-in method to Password Hash Synchronization
  2. Run a full synchronization cycle
  3. Test user authentication with cloud credentials
  4. Disable PTA agents after successful testing

Configure Self-Service Password Reset (SSPR):

  • Navigate to Microsoft Entra admin center > Users > Password reset
  • Enable SSPR for "All" users
  • Require 2 methods: Mobile phone and Email
  • Enable password writeback to on-premises AD
Pro tip: Use staged rollout feature in Microsoft Entra Connect to gradually migrate users from federation to managed authentication, reducing risk and allowing rollback if issues occur.

Verification: Test user authentication by having pilot users sign in to Office 365. Check authentication logs in Microsoft Entra admin center > Sign-in logs for successful cloud authentication events.

07

Migrate Applications and Services

Systematically migrate applications from on-premises AD authentication to Microsoft Entra ID, prioritizing business-critical services.

Identify applications using legacy authentication:

# Query sign-in logs for legacy auth usage
Connect-MgGraph -Scopes "AuditLog.Read.All"
Get-MgAuditLogSignIn -Filter "clientAppUsed eq 'Exchange ActiveSync'" -Top 100

Configure Enterprise Applications in Microsoft Entra ID:

  1. Navigate to Microsoft Entra admin center > Enterprise applications
  2. Select "New application" and choose from gallery or create custom
  3. Configure SAML SSO or OIDC depending on application support
  4. Assign users and groups to the application

For custom line-of-business applications, implement modern authentication:

// Example: Update .NET application to use Microsoft Authentication Library (MSAL)
using Microsoft.Identity.Client;

public async Task AcquireTokenAsync()
{
    var app = PublicClientApplicationBuilder
        .Create("your-client-id")
        .WithAuthority("https://login.microsoftonline.com/your-tenant-id")
        .Build();
    
    var result = await app.AcquireTokenInteractive(scopes)
        .ExecuteAsync();
    return result;
}

Configure Application Proxy for applications that cannot be modernized:

  • Install Application Proxy connector on on-premises server
  • Publish application through Microsoft Entra admin center
  • Configure pre-authentication with Microsoft Entra ID
  • Test external access through myapps.microsoft.com

Update DNS records for federated domains:

# Convert federated domain to managed
Connect-MsolService
Convert-MsolDomainToStandard -DomainName "yourdomain.com" -PasswordFile "C:\password.txt"
Warning: Test each application thoroughly in a staging environment before migrating production workloads. Some legacy applications may require Application Proxy or custom development.

Verification: Monitor application sign-ins in Microsoft Entra admin center > Enterprise applications > Sign-in logs. Ensure successful authentication and no legacy protocol usage.

08

Implement Governance and Compliance Controls

Establish identity governance controls required for enterprise compliance and security in the cloud-first environment.

Configure Privileged Identity Management (PIM) for administrative roles:

# Connect to PIM PowerShell module
Install-Module -Name Microsoft.Graph.Identity.Governance
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"

# List current role assignments
Get-MgRoleManagementDirectoryRoleAssignment

Set up Access Reviews for regular permission auditing:

  1. Navigate to Microsoft Entra admin center > Identity Governance > Access reviews
  2. Create new access review for "Teams + Groups" or "Applications"
  3. Set review frequency to quarterly
  4. Assign reviewers (managers or group owners)
  5. Configure auto-apply results for efficiency

Implement Entitlement Management for access packages:

  • Go to Identity Governance > Entitlement management
  • Create access packages combining groups, applications, and SharePoint sites
  • Define approval workflows and access duration
  • Enable self-service access requests

Configure Identity Protection policies:

# Enable Identity Protection risk policies
$riskPolicy = @{
    "displayName" = "High Risk User Policy"
    "state" = "enabled"
    "conditions" = @{
        "userRiskLevels" = @("high")
    }
    "grantControls" = @{
        "operator" = "OR"
        "builtInControls" = @("passwordChange")
    }
}

New-MgIdentityConditionalAccessPolicy -BodyParameter $riskPolicy

Set up lifecycle workflows for automated user provisioning and deprovisioning:

  • Navigate to Identity Governance > Lifecycle workflows
  • Create workflows for "Joiner", "Mover", and "Leaver" scenarios
  • Configure automatic group assignments and application provisioning
  • Set up approval processes for sensitive access
Pro tip: Use Microsoft Entra ID Governance licensing calculator to determine required licenses (Premium P2 or Governance) based on your compliance requirements.

Verification: Test PIM activation by requesting temporary elevation to Global Administrator role. Check Access Reviews are generating and completing successfully. Monitor Identity Protection dashboard for risk detections.

09

Execute Phased User Migration and Testing

Roll out the migration in controlled phases, starting with pilot groups and gradually expanding to the entire organization.

Create pilot groups for phased rollout:

# Create pilot security groups
Connect-MgGraph -Scopes "Group.ReadWrite.All"

$pilotGroup = @{
    "displayName" = "Entra ID Migration Pilot"
    "groupTypes" = @()
    "mailEnabled" = $false
    "securityEnabled" = $true
    "description" = "Pilot group for Entra ID migration testing"
}

New-MgGroup -BodyParameter $pilotGroup

Configure staged rollout for managed authentication:

  1. Navigate to Microsoft Entra admin center > Hybrid identity > Microsoft Entra Connect
  2. Select "Staged rollout of cloud authentication"
  3. Enable "Password hash synchronization" for pilot groups
  4. Add your pilot security group to the rollout
  5. Monitor authentication success rates

Test critical scenarios with pilot users:

  • Office 365 application access (Outlook, Teams, SharePoint)
  • VPN connectivity with modern authentication
  • Mobile device enrollment and compliance
  • Self-service password reset functionality
  • Multi-factor authentication enrollment and usage

Monitor migration progress and health:

# Check synchronization health
Connect-MgGraph -Scopes "Directory.Read.All"
Get-MgDirectoryOnPremisesSynchronization | Select-Object -ExpandProperty Features

# Monitor authentication events
Get-MgAuditLogSignIn -Filter "createdDateTime ge 2026-03-26T00:00:00Z" -Top 50

Expand rollout in phases:

  • Phase 1: IT department and early adopters (Week 1-2)
  • Phase 2: Department by department (Week 3-8)
  • Phase 3: Remaining users and service accounts (Week 9-12)
  • Phase 4: Decommission on-premises infrastructure (Week 13+)
Warning: Maintain rollback capability until each phase is fully validated. Keep on-premises AD infrastructure running until migration is complete and stable.

Verification: Monitor Microsoft 365 admin center service health dashboard and Microsoft Entra admin center sign-in logs for authentication success rates above 99.5% before proceeding to next phase.

10

Decommission On-Premises Infrastructure

Safely decommission on-premises Active Directory infrastructure after confirming successful migration and stable operations.

Validate complete migration before decommissioning:

# Verify all users are synchronized and active in Entra ID
Connect-MgGraph -Scopes "User.Read.All"
$cloudUsers = Get-MgUser -All | Where-Object {$_.OnPremisesSyncEnabled -eq $true}
Write-Output "Synchronized users: $($cloudUsers.Count)"

# Check for any remaining on-premises dependencies
Get-MgApplication -All | Where-Object {$_.OnPremisesPublishing -ne $null}

Disable directory synchronization (final step):

# Connect to Microsoft Online Services
Connect-MsolService

# Disable directory synchronization (irreversible action)
Set-MsolDirSyncEnabled -EnableDirSync $false

# Confirm synchronization is disabled
Get-MsolCompanyInformation | Select-Object DirectorySynchronizationEnabled

Clean up on-premises infrastructure:

  1. Uninstall Microsoft Entra Connect or Cloud Sync agents
  2. Remove service accounts created for synchronization
  3. Update DNS records to remove on-premises references
  4. Archive Active Directory database for compliance retention
  5. Decommission domain controllers (keep one for 90 days as backup)

Update documentation and runbooks:

  • Update network diagrams to reflect cloud-only architecture
  • Modify incident response procedures for cloud-based identity
  • Train helpdesk staff on Microsoft Entra ID administration
  • Update backup and disaster recovery procedures

Configure cloud-only administrative processes:

# Set up cloud-only user provisioning workflow
$workflow = @{
    "displayName" = "New User Onboarding"
    "description" = "Automated user provisioning for new employees"
    "isEnabled" = $true
    "category" = "joiner"
}

# Create lifecycle workflow (requires Entra ID Governance license)
New-MgIdentityGovernanceLifecycleWorkflow -BodyParameter $workflow
Pro tip: Keep a read-only domain controller in archive mode for 90 days after disabling sync, in case you need to reference historical data or perform emergency rollback.

Verification: Confirm directory synchronization shows as "Disabled" in Microsoft Entra admin center > Hybrid identity. Test all critical business applications and user scenarios work without on-premises AD dependency.

Frequently Asked Questions

What's the difference between Microsoft Entra Connect and Cloud Sync for AD migration?+
Microsoft Entra Connect is the traditional synchronization tool requiring SQL Server and more complex setup, while Cloud Sync uses lightweight agents and is Microsoft's recommended approach for new deployments in 2026. Cloud Sync supports installation on domain controllers, offers better multi-forest support, and requires .NET 4.7.1+ compared to Connect's .NET 4.6.2+ requirement. Cloud Sync also provides better scalability and simplified management through the cloud-based admin center.
Can I still use Hybrid Azure AD Join after migrating to Microsoft Entra ID?+
While Hybrid Azure AD Join is still supported, Microsoft's 2026 strategic direction recommends native Entra ID Join with Intune instead of hybrid join as the long-term architecture. Hybrid join maintains dependency on on-premises AD, while native join provides full cloud benefits including better security posture, simplified management, and alignment with Microsoft's future development roadmap. Plan your device strategy accordingly rather than treating hybrid join as a permanent solution.
What happens to applications using Basic Authentication after March 31, 2026?+
Basic Authentication for Exchange Online was fully retired on March 31, 2026, and legacy authentication protocols are disabled for new tenants since January 15, 2026. Applications using these protocols will fail authentication and must be updated to use modern authentication methods like OAuth 2.0, SAML, or OpenID Connect. For applications that cannot be modernized, consider using Application Proxy to provide secure external access while maintaining legacy authentication internally.
Do I need special licenses for Microsoft Entra ID migration and governance features?+
Basic synchronization requires Microsoft Entra ID Premium Plan 1, but advanced features need Premium Plan 2 or Governance licenses. Hybrid Join scenarios require Premium Plan 1 minimum. Identity Protection, Privileged Identity Management, and Access Reviews require Premium Plan 2. Lifecycle workflows and advanced Entitlement Management features require Microsoft Entra ID Governance licensing. Use Microsoft's licensing calculator to determine exact requirements based on your compliance and governance needs.
How long does a complete Active Directory to Entra ID migration typically take?+
A complete enterprise migration typically takes 12-16 weeks for organizations with 1000+ users, broken into phases: planning and assessment (2-3 weeks), tool installation and initial sync (1-2 weeks), security configuration (2-3 weeks), application migration (4-6 weeks), phased user rollout (3-4 weeks), and infrastructure decommissioning (2-3 weeks). Timeline varies based on application complexity, user count, and organizational change management requirements. Maintain parallel systems until each phase is validated and stable.
Evan Mael
Written by

Evan Mael

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Share your thoughts and insights

Sign in to join the discussion