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, musisz wprowadzić te same zmiany 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. Wybierz Uruchom, wybierz Pełny importi OK. Wykonaj te kroki dla wszystkich łączników tego typu.
- Wybierz łącznik z typem Microsoft Entra ID (Microsoft). Wybierz Uruchom, wybierz Pełny importi OK.
- Upewnij się, że karta Łączniki jest nadal zaznaczona. Dla każdego łącznika z typem Active Directory Domain Serviceswybierz Uruchom, następnie Synchronizację różnicowąi OK.
- Wybierz łącznik z typem Microsoft Entra ID (Microsoft). Wybierz Uruchom, wybierz Delta Synchronizacjai OK.
Teraz przygotowałeś 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, synchronizuj i weryfikuj, aż wyeksportowane zmiany będą zgodne z oczekiwaniami.
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 ustawić w trybie wysokiej dostępności Active-Passive. W tej konfiguracji jeden serwer aktywnie wypycha zmiany do zsynchronizowanych obiektów usługi AD do Microsoft Entra ID, a pasywny serwer przygotowuje te zmiany na wypadek, gdyby musiał przejąć kontrolę.
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 przełączanie awaryjne 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 przypadku tych zdarzeń można spróbować wykonać 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 dostępny, 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 wybierz pozycję "Konfiguruj tryb przejściowy", a następnie pozycję 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 wybierz pozycję 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 na serwerze w Trybie Przejściowym dla, aby w przypadku jego aktywacji, szybko przejął kontrolę i nie musiał wykonywać dużej synchronizacji, żeby osiągnąć bieżący stan obiektów Active Directory / Microsoft Entra w zakresie.
Po wybraniu opcji , aby rozpocząć proces synchronizacji i wybraniu pozycji Konfiguruj, serwer Microsoft Entra Connect jest skonfigurowany w trybie przejściowym. Po zakończeniu zostanie wyświetlony ekran z monitem o potwierdzenie włączenia trybu przejściowego. Możesz wybrać opcję Zakończ, aby zakończyć działanie.
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 być 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.
Wybierz pozycję "Konfiguruj tryb przejściowy" i wybierz pozycję 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 dla Trybu Staging i wybierz 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 wybierz pozycję Konfiguruj:
- Po zakończeniu procesu powinien zostać wyświetlony poniższy ekran potwierdzenia, na którym można wybrać pozycję 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