Azure AD Sync Passwordhash issue

Wanneer je de melding van gebruikers krijgt dat hun wachtwoorden van de onpremise omgeving niet meer werken binnen Microsoft 365 omgevingen kun je kijken in de windows eventviewer van de server waar AD Sync op plaatsvindt. Bij een omgeving had ik last van EventID 611

Microsoft.Online.PasswordSynchronization.DirectoryReplicationServices.DrsException: RPC Error 8453 : Replication access was denied. There was an error calling _IDL_DRSGetNCChanges.
    at Microsoft.Online.PasswordSynchronization.DirectoryReplicationServices.DrsRpcConnection.OnGetChanges(ReplicationState syncState)
    at Microsoft.Online.PasswordSynchronization.DirectoryReplicationServices.DrsConnection.GetChanges(ReplicationState replicationState)
    at Microsoft.Online.PasswordSynchronization.RetryUtility.ExecuteWithRetry[T](Func1 operation, Func1 shouldAbort, RetryPolicyHandler retryPolicy)
    at Microsoft.Online.PasswordSynchronization.DeltaSynchronizationTask.SynchronizeCredentialsToCloud()
    at Microsoft.Online.PasswordSynchronization.PasswordSynchronizationTask.SynchronizeSecrets()
    at Microsoft.Online.PasswordSynchronization.SynchronizationExecutionContext.SynchronizeDomain()
    at Microsoft.Online.PasswordSynchronization.SynchronizationManager.SynchronizeDomain(SynchronizationExecutionContext syncExecutionContext)
 .

Ergens ging het mis met permissies. Ook via de Synchronization Service Manager zag ik bij de Export taak deze foutmelding terugkomen.

Daarop heb ik eerst gekeken op het tabblad “connectors” in de Synchronization Service Manager wat mijn exacte profile names waren. Let op deze zijn hoofdletter gevoelig! Als eerste heb ik even de sync uit en weer aangezet via Powershell:

$adConnector = "steijvers.com"
$aadConnector = "steijversinc.onmicrosoft.com - AAD"
Import-Module adsync
$c = Get-ADSyncConnector -Name $adConnector
$p = New-Object Microsoft.IdentityManagement.PowerShell.ObjectModel.ConfigurationParameter “Microsoft.Synchronize.ForceFullPasswordSync”, String, ConnectorGlobal, $null, $null, $null
$p.Value = 1
$c.GlobalParameters.Remove($p.Name)
$c.GlobalParameters.Add($p)
$c = Add-ADSyncConnector -Connector $c
Set-ADSyncAADPasswordSyncConfiguration -SourceConnector $adConnector -TargetConnector $aadConnector -Enable $false
Set-ADSyncAADPasswordSyncConfiguration -SourceConnector $adConnector -TargetConnector $aadConnector -Enable $true

Heb je daarna nog steeds een permissions foutmelding, dan mist het account dat je voor de sync gebruikt enkele machtigingen. Deze kun je met de onderstaande powershell oplossen.

$accountName = "steijvers\adsyncaccount"
$ForestDN = "DC=steijvers,DC=com"
$cmd = "dsacls '$ForestDN' /I:S /G '"$accountName":WP;ms-ds-consistencyGuid;user'"
Invoke-Expression $cmd