В этой статье мы рассмотрим способ решения проблемы синхронизации паролей из on-prem Active Directoryr в Azure через Azure AD Connect.
На портале Azure появилось предупреждение:
Azure AD Connect Password sync: no recent synchronization
Проблема возникла после отключения сервера с ролью Azure AD Connect на несколько часов во время даунтайма инфраструктуры из за работа на оборудовани ЦОД. Синхронизация атрибутов пользователей из наземного каталога AD в Azure заработала, а синхронизация паролей перестала работать выполнялась
Для выявления проблем синхронизации паролей можно использовать функцию Invoke-ADSyncDiagnostics:
Import-Module ADSyncDiagnostics
Invoke-ADSyncDiagnostics -PasswordSync
В нашем случае команда вернула:
Password hash synchronization cloud configuration is enabled.
Password hash synchronization is enabled.
No password hash synchronization heartbeat is detected.
Согласно документации Microsoft, у каждого коннектора есть свой собственный канал синхронизации паролей. Если канал синхронизации паролей установлен, но коннектору не нужно синхронизировать изменения паролей (пароли в локальной AD DS не обновлялись), то в журнале событий каждые 30 минут будет создаваться событие пульса с EventID 654:
Provision credentials ping end.
Если при запуске Invoke-ADSyncDiagnostics в журнале не было таких событий за последние три часа, то возвращается ошибка.
Если нет пульса, нужно выполнить полную синхронизации всех паролей с помощью следующего скрипта PowerShell:
$adConnector = "<AD_CONNECTOR_NAME_CASE_SENSITIVE>"
$aadConnector = "<AAD_CONNECTOR_NAME_CASE_SENSITIVE>"
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
Подставьте в значения переменных $adConnector и $aadConnector имена своих коннекторов (регистрочуствительны!). Их можно получить командой:
Get-ADSyncConnector | Select Type,Name
После выполнения крипта должна появится надпись:
Password Hash Sync Configuration for source "yourdomain " updated.
Подождите немного и еще раз выполите команду
Invoke-ADSyncDiagnostics
Должна появится надпись:
Latest password hash synchronization heartbeat is detected at: your_time
Если после этого выполнить Invoke-ADSyncDiagnostics, то результат будет следующим:
На портале Azure (или в Microsoft 365 Admin Center) также появилось сообщение, что синхронизация паролей теперь работает:
Password sync: recent synchronization