Microsoft Entra Connect: przejściowy serwer i odzyskiwanie po awarii
W przypadku serwera w trybie przejściowym można wprowadzać zmiany w konfiguracji i wyświetlać ich podgląd przed uaktywnieniem serwera. Możliwe jest również uruchamianie pełnego importu i pełnej synchronizacji, aby przed wprowadzeniem zmian do środowiska produkcyjnego sprawdzić, czy wszystkie one są zgodne z oczekiwaniami.
Tryb przejściowy
Tryb przejściowy może być używany w kilku scenariuszach, takich jak:
- Wysoka dostępność.
- Testowanie i wdrażanie nowych zmian konfiguracji.
- Wprowadzanie nowego serwera i likwidowanie starego.
Podczas instalacji można wybrać serwer, który ma być w trybie przejściowym. Ta akcja powoduje, że serwer jest aktywny do importowania i synchronizacji, ale nie uruchamia żadnych eksportów. Serwer w trybie przejściowym nie uruchamia synchronizacji haseł ani zapisywania zwrotnego haseł, nawet jeśli te funkcje zostały wybrane podczas instalacji. Po wyłączeniu trybu przejściowego serwer rozpoczyna eksportowanie, włącza synchronizację haseł i włącza zapisywanie zwrotne haseł.
Uwaga
Załóżmy, że masz włączoną funkcję microsoft Entra Connect z funkcją synchronizacji skrótów haseł. Po włączeniu trybu przejściowego serwer zatrzymuje synchronizowanie zmian haseł z lokalnej usługi AD. Po wyłączeniu trybu przejściowego serwer wznawia synchronizowanie zmian haseł z miejsca, w którym ostatnio zostało przerwane. Jeśli serwer pozostanie w trybie przejściowym przez dłuższy czas, może upłynąć pewien czas, aby serwer synchronizował wszystkie zmiany haseł, które wystąpiły w danym okresie.
Nadal można wymusić eksport przy użyciu menedżera usługi synchronizacji.
Serwer w trybie przejściowym nadal otrzymuje zmiany z usług Active Directory i Microsoft Entra ID i może szybko przejąć obowiązki innego serwera w przypadku awarii. Jeśli wprowadzisz zmiany konfiguracji na serwerze podstawowym, twoim obowiązkiem jest wprowadzenie tych samych zmian na serwerze w trybie przejściowym.
W przypadku osób znających starsze technologie synchronizacji tryb przejściowy różni się od tego, że serwer ma własną bazę danych SQL. Ta architektura umożliwia serwer trybu przejściowego znajdujący się w innym centrum danych.
Weryfikowanie konfiguracji serwera
Aby zastosować tę metodę, wykonaj następujące kroki:
- Przygotowywanie
- Konfiguracja
- Importowanie i synchronizowanie
- Weryfikacja
- Przełączanie aktywnego serwera
Przygotowywanie
- Zainstaluj program Microsoft Entra Connect, wybierz tryb przejściowy i usuń zaznaczenie opcji Rozpocznij synchronizację na ostatniej stronie kreatora instalacji. Ten tryb umożliwia ręczne uruchamianie aparatu synchronizacji.
- Wyloguj się/zaloguj, a następnie z menu Start wybierz pozycję Usługa synchronizacji.
Konfigurowanie
Jeśli wprowadzono niestandardowe zmiany na serwerze podstawowym i chcesz porównać konfigurację z serwerem przejściowym, użyj programu Microsoft Entra Connect configuration documenter.
Importowanie i synchronizowanie
- Wybierz pozycję Łączniki i wybierz pierwszy łącznik z typem domena usługi Active Directory Services. Kliknij przycisk Uruchom, wybierz pozycję Pełny import i OK. Wykonaj te kroki dla wszystkich łączników tego typu.
- Wybierz łącznik z typem Microsoft Entra ID (Microsoft). Kliknij przycisk Uruchom, wybierz pozycję Pełny import i OK.
- Upewnij się, że karta Łączniki jest nadal zaznaczona. Dla każdego łącznika z typem domena usługi Active Directory Services kliknij przycisk Uruchom, wybierz pozycję Synchronizacja różnicowa i OK.
- Wybierz łącznik z typem Microsoft Entra ID (Microsoft). Kliknij przycisk Uruchom, wybierz pozycję Synchronizacja różnicowa i OK.
Masz teraz przygotowane zmiany eksportu do usługi Microsoft Entra ID i lokalnej usługi AD (jeśli używasz wdrożenia hybrydowego programu Exchange). Następne kroki umożliwiają sprawdzenie, co ma się zmienić przed rozpoczęciem eksportowania do katalogów.
Weryfikacja
- Uruchom wiersz polecenia i przejdź do
%ProgramFiles%\Microsoft Azure AD Sync\bin
- Uruchom:
csexport "Name of Connector" %temp%\export.xml /f:x
nazwę łącznika można znaleźć w usłudze synchronizacji. Ma ona nazwę podobną do "contoso.com — Microsoft Entra ID" dla identyfikatora Entra firmy Microsoft. - Uruchom:
CSExportAnalyzer %temp%\export.xml > %temp%\export.csv
masz plik w %temp% o nazwie export.csv, który można zbadać w programie Microsoft Excel. Ten plik zawiera wszystkie zmiany, które mają zostać wyeksportowane. - Wprowadź niezbędne zmiany w danych lub konfiguracji i uruchom te kroki ponownie (importuj i synchronizuj i zweryfikuj), dopóki zmiany, które zostaną wyeksportowane, będą oczekiwane.
Opis pliku export.csv
Większość pliku nie wyjaśnia. Niektóre skróty umożliwiające zrozumienie zawartości:
- OMODT — typ modyfikacji obiektu. Wskazuje, czy operacja na poziomie obiektu to Dodaj, Aktualizuj lub Usuń.
- AMODT — typ modyfikacji atrybutu. Wskazuje, czy operacja na poziomie atrybutu jest dodawanie, aktualizowanie lub usuwanie.
Pobieranie typowych identyfikatorów
Plik export.csv zawiera wszystkie zmiany, które mają zostać wyeksportowane. Każdy wiersz odpowiada zmianie obiektu w przestrzeni łącznika, a obiekt jest identyfikowany przez atrybut DN. Atrybut DN jest unikatowym identyfikatorem przypisanym do obiektu w przestrzeni łącznika. Jeśli masz wiele wierszy/zmian w export.csv do przeanalizowania, może być trudno ustalić, które obiekty są przeznaczone dla na podstawie atrybutu DN. Aby uprościć proces analizowania zmian, użyj skryptu csanalyzer.ps1
programu PowerShell. Skrypt pobiera typowe identyfikatory (na przykład displayName, userPrincipalName) obiektów. Aby użyć skryptu:
- Skopiuj skrypt programu PowerShell z sekcji CSAnalyzer do pliku o nazwie
csanalyzer.ps1
. - Otwórz okno programu PowerShell i przejdź do folderu, w którym został utworzony skrypt programu PowerShell.
- Uruchom polecenie:
.\csanalyzer.ps1 -xmltoimport %temp%\export.xml
. - Masz teraz plik o nazwie processedusers1.csv , który można zbadać w programie Microsoft Excel. Należy pamiętać, że plik zawiera mapowanie z atrybutu DN na typowe identyfikatory (na przykład displayName i userPrincipalName). Obecnie nie zawiera rzeczywistych zmian atrybutów, które mają zostać wyeksportowane.
Przełączanie aktywnego serwera
Program Microsoft Entra Connect można skonfigurować w konfiguracji aktywnej/pasywnej wysokiej dostępności, w której jeden serwer aktywnie wypycha zmiany do zsynchronizowanych obiektów usługi AD z identyfikatorem Microsoft Entra ID i pasywnym serwerem etapy tych zmian w przypadku, gdy musi przejąć.
Uwaga
Nie można skonfigurować programu Microsoft Entra Connect w konfiguracji Aktywne-Aktywne. Musi być aktywny-pasywny. Upewnij się, że tylko 1 serwer Microsoft Entra Connect aktywnie synchronizuje zmiany.
Aby uzyskać więcej informacji na temat konfigurowania serwera synchronizacji Programu Microsoft Entra Connect w trybie przejściowym, zobacz tryb przejściowy
Może być konieczne przejście w tryb failover serwerów synchronizacji z kilku powodów, takich jak uaktualnienie wersji programu Microsoft Entra Connect lub otrzymanie alertu informującego, że usługa kondycji usługi synchronizacji nie otrzymuje aktualnych informacji. W tych zdarzeniach można spróbować przejść w tryb failover serwerów synchronizacji, wykonując poniższe kroki.
Ważne
Przełączenie serwera przejściowego na tryb aktywny może mieć poważny wpływ na synchronizację, jeśli następujące warunki nie zostaną spełnione. Jako środek ostrożności należy zawsze uruchamiać początkowy cykl synchronizacji i weryfikować oczekujące eksporty przed wykonaniem tej operacji.
Wymagania wstępne
- Jeden aktualnie aktywny serwer synchronizacji Programu Microsoft Entra Connect
- Jeden przejściowy serwer microsoft Entra Connect Sync
- Serwer przejściowy ma włączony harmonogram synchronizacji i został ostatnio zsynchronizowany z identyfikatorem Entra firmy Microsoft
- W przypadku aktualizacji w regułach synchronizacji lub w zakresie synchronizacji uruchom początkowy cykl synchronizacji
- Upewnij się, że serwer synchronizacji programu Microsoft Entra Connect został skonfigurowany w celu zapobiegania przypadkowym usunięciom
- Sprawdź oczekujące eksporty i upewnij się, że nie ma znaczących aktualizacji, a takie aktualizacje są oczekiwane
- Sprawdź, czy agent programu Microsoft Entra Connect Health został zaktualizowany, sprawdzając serwer w portalu Microsoft Entra Connect Health
- Przełącz bieżący aktywny serwer do trybu przejściowego przed przełączeniem serwera przejściowego na aktywny
Zmiana aktualnie aktywnego serwera synchronizacji na tryb przejściowy
Musimy upewnić się, że tylko jeden serwer synchronizacji synchronizuje zmiany w dowolnym momencie w tym procesie. Jeśli obecnie aktywny serwer synchronizacji jest osiągalny, możesz wykonać poniższe kroki, aby przenieść go do trybu przejściowego. Jeśli nie jest osiągalna, upewnij się, że serwer lub maszyna wirtualna nie odzyskają dostępu nieoczekiwanie, zamykając serwer lub izolując go od połączeń wychodzących.
- W przypadku aktualnie aktywnego serwera Microsoft Entra Connect otwórz kreatora Microsoft Entra Connect i kliknij pozycję "Skonfiguruj tryb przejściowy", a następnie przycisk Dalej:
- Musisz zalogować się do usługi Microsoft Entra ID przy użyciu poświadczeń administratora tożsamości hybrydowej:
- Zaznacz pole wyboru Tryb przejściowy i kliknij przycisk Dalej:
- Serwer Microsoft Entra Connect sprawdza zainstalowane składniki, a następnie monituje, czy chcesz uruchomić proces synchronizacji po zakończeniu zmiany konfiguracji:
Ponieważ serwer jest w trybie przejściowym, nie będzie zapisywać zmian w identyfikatorze Entra firmy Microsoft, ale zachowuje wszelkie zmiany w usłudze AD w obszarze łącznika, gotowe do ich zapisania. Zaleca się pozostawienie procesu synchronizacji dla serwera w trybie przejściowym, więc jeśli stanie się aktywny, szybko przejmie i nie będzie musiał wykonywać dużej synchronizacji, aby nadrobić zaległości do bieżącego stanu obiektów Usługi Active Directory / Microsoft Entra w zakresie.
Po wybraniu opcji uruchamiania procesu synchronizacji i kliknięciu pozycji Konfiguruj serwer Microsoft Entra Connect jest skonfigurowany w trybie przejściowym. Po zakończeniu zostanie wyświetlony monit z ekranem z potwierdzeniem włączenia trybu przejściowego. Możesz kliknąć przycisk Zakończ, aby zakończyć.
Możesz potwierdzić, że serwer jest pomyślnie w trybie przejściowym, otwierając program Windows PowerShell, ładując moduł "ADSync" i sprawdzając konfigurację harmonogramu adSync, używając następujących poleceń:
Import-Module ADSync
Get-ADSyncScheduler
Z wyników sprawdź wartość ustawienia "StagingModeEnabled". Jeśli serwer został pomyślnie przełączony do trybu przejściowego, wartość tego ustawienia powinna mieć wartość True , jak w poniższym przykładzie:
Zmień bieżący serwer synchronizacji przejściowej na aktywny
W tym momencie wszystkie serwery synchronizacji programu Microsoft Entra Connect powinny znajdować się w trybie przejściowym i nie eksportować zmian. Teraz możemy przenieść nasz tymczasowy serwer synchronizacji do trybu aktywnego i aktywnie synchronizować zmiany.
- Teraz przejdź do serwera Microsoft Entra Connect, który był pierwotnie w trybie przejściowym i otwórz kreatora Microsoft Entra Connect.
Kliknij pozycję "Konfiguruj tryb przejściowy", a następnie kliknij przycisk Dalej:
Komunikat w dolnej części kreatora wskazuje, że ten serwer jest w trybie przejściowym.
- Zaloguj się do identyfikatora Entra firmy Microsoft, a następnie przejdź do ekranu Tryb przejściowy.
Usuń zaznaczenie pola tryb przejściowy i kliknij przycisk Dalej.
Zgodnie z ostrzeżeniem na tej stronie należy upewnić się, że żaden inny serwer Microsoft Entra Connect nie jest aktywnie synchronizowany.
W dowolnym momencie powinien istnieć tylko jeden aktywny serwer microsoft Entra Connect Sync.
- Po wyświetleniu monitu o rozpoczęcie procesu synchronizacji zaznacz to pole i kliknij przycisk Konfiguruj:
- Po zakończeniu procesu powinien zostać wyświetlony poniższy ekran potwierdzenia, na którym można kliknąć przycisk Zakończ, aby zakończyć:
- Możesz potwierdzić, że ten proces działa, otwierając konsolę usługi synchronizacji i sprawdzając, czy zadania eksportu są uruchomione:
Odzyskiwanie po awarii
Częścią projektu implementacji jest zaplanowanie tego, co należy zrobić w przypadku awarii, w której utracisz serwer synchronizacji. Istnieją różne modele postępowania, a wybór odpowiedniego do użycia w danym przypadku zależy od kilku czynników, takich jak:
- Jaka jest tolerancja braku możliwości wprowadzania zmian w obiektach w identyfikatorze Entra firmy Microsoft podczas przestoju?
- Jeśli korzystasz z synchronizacji haseł, czy użytkownicy akceptują fakt, że muszą używać starego hasła w Microsoft Entra ID w przypadku jego zmiany w środowisku lokalnym?
- Czy istnieje zależność od operacji w czasie rzeczywistym, takich jak zapisywanie zwrotne haseł?
W zależności od odpowiedzi na te pytania i zasady organizacji można zaimplementować jedną z następujących strategii:
- W razie potrzeby ponownie skompiluj.
- Ma zapasowy serwer rezerwowy, znany jako tryb przejściowy.
- Użyj maszyn wirtualnych.
Jeśli nie używasz wbudowanej bazy danych SQL Express, zapoznaj się również z sekcją Wysoka dostępność SQL.
Ponowne kompilowanie w razie potrzeby
Realną strategią jest zaplanowanie ponownego kompilowania serwera w razie potrzeby. Zazwyczaj zainstalowanie aparatu synchronizacji i wykonanie początkowego importowania i synchronizacji można wykonać w ciągu kilku godzin. Jeśli nie ma dostępnego zapasowego serwera, można tymczasowo użyć kontrolera domeny do hostowania aparatu synchronizacji.
Serwer aparatu synchronizacji nie przechowuje żadnego stanu obiektów, więc bazę danych można odtworzyć z danych w usługach Active Directory i Microsoft Entra ID. Atrybut sourceAnchor służy do łączenia obiektów ze środowiska lokalnego i chmury. Jeśli ponownie skompilujesz serwer z istniejącymi obiektami lokalnymi i chmurą, aparat synchronizacji będzie ponownie pasować do tych obiektów podczas ponownej instalacji. Czynności, które należy udokumentować i zapisać, to zmiany konfiguracji wprowadzone na serwerze, takie jak reguły filtrowania i synchronizacji. Przed rozpoczęciem synchronizacji należy ponownie zastosować te konfiguracje niestandardowe.
Posiadanie zapasowego serwera rezerwowego — tryb przejściowy
Jeśli masz bardziej złożone środowisko, zalecane jest posiadanie co najmniej jednego serwera rezerwowego. Podczas instalacji można włączyć serwer w trybie przejściowym.
Aby uzyskać więcej informacji, zobacz tryb przejściowy.
Korzystanie z maszyn wirtualnych
Typową i obsługiwaną metodą jest uruchomienie aparatu synchronizacji na maszynie wirtualnej. Jeśli host ma problem, obraz z serwerem aparatu synchronizacji można migrować do innego serwera.
Wysoka dostępność sql
Jeśli nie korzystasz z SQL Server Express, który jest dostarczany z Microsoft Entra Connect, należy również rozważyć wysoką dostępność dla SQL Server. Obsługiwane rozwiązania wysokiej dostępności obejmują klastrowanie SQL oraz AOA (Zawsze włączone grupy dostępności). Nieobsługiwane rozwiązania obejmują dublowanie.
Dodano obsługę usługi SQL AOA do programu Microsoft Entra Connect w wersji 1.1.524.0. Przed zainstalowaniem programu Microsoft Entra Connect należy włączyć usługę SQL AOA. Podczas instalacji program Microsoft Entra Connect wykrywa, czy udostępnione wystąpienie SQL jest włączone dla usługi SQL AOA, czy nie. Jeśli usługa SQL AOA jest włączona, program Microsoft Entra Connect dodatkowo dowie się, czy usługa SQL AOA jest skonfigurowana do używania replikacji synchronicznej lub replikacji asynchronicznej. Podczas konfigurowania odbiornika grupy dostępności właściwość RegisterAllProvidersIP musi być ustawiona na 0. Program Microsoft Entra Connect obecnie używa klienta natywnego SQL do nawiązywania połączenia z bazą danych SQL i klientem natywnym SQL nie obsługuje używania właściwości MultiSubNetFailover.
Dodatek CSAnalyzer
Zobacz sekcję zweryfikuj , jak używać tego skryptu.
Param(
[Parameter(Mandatory=$true, HelpMessage="Must be a file generated using csexport 'Name of Connector' export.xml /f:x)")]
[string]$xmltoimport="%temp%\exportedStage1a.xml",
[Parameter(Mandatory=$false, HelpMessage="Maximum number of users per output file")][int]$batchsize=1000,
[Parameter(Mandatory=$false, HelpMessage="Show console output")][bool]$showOutput=$false
)
#LINQ isn't loaded automatically, so force it
[Reflection.Assembly]::Load("System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") | Out-Null
[int]$count=1
[int]$outputfilecount=1
[array]$objOutputUsers=@()
#XML must be generated using "csexport "Name of Connector" export.xml /f:x"
write-host "Importing XML" -ForegroundColor Yellow
#XmlReader.Create won't properly resolve the file location,
#so expand and then resolve it
$resolvedXMLtoimport=Resolve-Path -Path ([Environment]::ExpandEnvironmentVariables($xmltoimport))
#use an XmlReader to deal with even large files
$result=$reader = [System.Xml.XmlReader]::Create($resolvedXMLtoimport)
$result=$reader.ReadToDescendant('cs-object')
if($result)
{
do
{
#create the object placeholder
#adding them up here means we can enforce consistency
$objOutputUser=New-Object psobject
Add-Member -InputObject $objOutputUser -MemberType NoteProperty -Name ID -Value ""
Add-Member -InputObject $objOutputUser -MemberType NoteProperty -Name Type -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name DN -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name operation -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name UPN -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name displayName -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name sourceAnchor -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name alias -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name primarySMTP -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name onPremisesSamAccountName -Value ""
Add-Member -inputobject $objOutputUser -MemberType NoteProperty -Name mail -Value ""
$user = [System.Xml.Linq.XElement]::ReadFrom($reader)
if ($showOutput) {Write-Host Found an exported object... -ForegroundColor Green}
#object id
$outID=$user.Attribute('id').Value
if ($showOutput) {Write-Host ID: $outID}
$objOutputUser.ID=$outID
#object type
$outType=$user.Attribute('object-type').Value
if ($showOutput) {Write-Host Type: $outType}
$objOutputUser.Type=$outType
#dn
$outDN= $user.Element('unapplied-export').Element('delta').Attribute('dn').Value
if ($showOutput) {Write-Host DN: $outDN}
$objOutputUser.DN=$outDN
#operation
$outOperation= $user.Element('unapplied-export').Element('delta').Attribute('operation').Value
if ($showOutput) {Write-Host Operation: $outOperation}
$objOutputUser.operation=$outOperation
#now that we have the basics, go get the details
foreach ($attr in $user.Element('unapplied-export-hologram').Element('entry').Elements("attr"))
{
$attrvalue=$attr.Attribute('name').Value
$internalvalue= $attr.Element('value').Value
switch ($attrvalue)
{
"userPrincipalName"
{
if ($showOutput) {Write-Host UPN: $internalvalue}
$objOutputUser.UPN=$internalvalue
}
"displayName"
{
if ($showOutput) {Write-Host displayName: $internalvalue}
$objOutputUser.displayName=$internalvalue
}
"sourceAnchor"
{
if ($showOutput) {Write-Host sourceAnchor: $internalvalue}
$objOutputUser.sourceAnchor=$internalvalue
}
"alias"
{
if ($showOutput) {Write-Host alias: $internalvalue}
$objOutputUser.alias=$internalvalue
}
"proxyAddresses"
{
if ($showOutput) {Write-Host primarySMTP: ($internalvalue -replace "SMTP:","")}
$objOutputUser.primarySMTP=$internalvalue -replace "SMTP:",""
}
}
}
$objOutputUsers += $objOutputUser
Write-Progress -activity "Processing ${xmltoimport} in batches of ${batchsize}" -status "Batch ${outputfilecount}: " -percentComplete (($objOutputUsers.Count / $batchsize) * 100)
#every so often, dump the processed users in case we blow up somewhere
if ($count % $batchsize -eq 0)
{
Write-Host Hit the maximum users processed without completion... -ForegroundColor Yellow
#export the collection of users as a CSV
Write-Host Writing processedusers${outputfilecount}.csv -ForegroundColor Yellow
$objOutputUsers | Export-Csv -path processedusers${outputfilecount}.csv -NoTypeInformation
#increment the output file counter
$outputfilecount+=1
#reset the collection and the user counter
$objOutputUsers = $null
$count=0
}
$count+=1
#need to bail out of the loop if no more users to process
if ($reader.NodeType -eq [System.Xml.XmlNodeType]::EndElement)
{
break
}
} while ($reader.Read)
#need to write out any users that didn't get picked up in a batch of 1000
#export the collection of users as CSV
Write-Host Writing processedusers${outputfilecount}.csv -ForegroundColor Yellow
$objOutputUsers | Export-Csv -path processedusers${outputfilecount}.csv -NoTypeInformation
}
else
{
Write-Host "Imported XML file is empty. No work to do." -ForegroundColor Red
}
Następne kroki
Tematy omówienia