Microsoft Entra Connect: Přípravný server a zotavení po havárii
Server v pracovním režimu umožňuje provést změny konfigurace a vyzkoušet je před tím, než server aktivujete. Umožňuje také spustit úplný import a úplnou synchronizaci, abyste před provedením změn v produkčním prostředí mohli ověřit, že všechny změny odpovídají očekávání.
Pracovní režim
Pracovní režim je možné využít v různých scénářích, mezi které patří:
- Vysoká dostupnost
- Testování a nasazení nových změn konfigurace
- Vytvoření nového serveru a vyřazení starého serveru z provozu
Během instalace můžete vybrat server, který má být v pracovním režimu. Tato akce aktivuje server pro import a synchronizaci, ale nespustí žádné exporty. Server v pracovním režimu nespouštět synchronizaci hesel ani zpětný zápis hesla, i když jste tyto funkce vybrali během instalace. Když zakážete pracovní režim, server začne exportovat, povolí synchronizaci hesel a povolí zpětný zápis hesla.
Poznámka:
Předpokládejme, že máte povolenou funkci Microsoft Entra Connect se synchronizací hodnot hash hesel. Když povolíte pracovní režim, server přestane synchronizovat změny hesel z místní služby AD. Když zakážete pracovní režim, server obnoví synchronizaci změn hesel z místa, kde naposledy skončil. Pokud je server po delší dobu v pracovním režimu, může chvíli trvat, než server synchronizuje všechny změny hesel, ke kterým došlo během časového období.
Export můžete i tak vynutit pomocí správce synchronizačních služeb.
Server v pracovním režimu nadále přijímá změny ze služby Active Directory a ID Microsoft Entra a může v případě selhání rychle převzít odpovědnost jiného serveru. Pokud provedete změny konfigurace primárního serveru, je vaší zodpovědností provést stejné změny serveru v pracovním režimu.
Pro ty z vás se znalostmi starších synchronizačních technologií se pracovní režim liší, protože server má svou vlastní databázi SQL. Tato architektura umožňuje, aby se server přípravného režimu nacházel v jiném datacentru.
Ověření konfigurace serveru
Chcete-li použít tuto metodu, postupujte takto:
Příprava
- Nainstalujte Nástroj Microsoft Entra Connect, vyberte pracovní režim a zrušte výběr synchronizace spuštění na poslední stránce průvodce instalací. Tento režim umožňuje ruční spuštění synchronizačního modulu.
- Odhlaste se nebo se přihlaste a v nabídce Start vyberte Synchronizační služba.
Konfigurace
Pokud jste provedli vlastní změny primárního serveru a chcete porovnat konfiguraci s přípravným serverem, použijte dokumentátor konfigurace služby Microsoft Entra Connect.
Import a synchronizace
- Vyberte Konektory a vyberte první konektor s typem Doména služby Active Directory Services. Klikněte na Spustit, vyberte Úplný import a OK. Tento postup proveďte pro všechny konektory tohoto typu.
- Vyberte konektor s typem Microsoft Entra ID (Microsoft). Klikněte na Spustit, vyberte Úplný import a OK.
- Ujistěte se, že je stále vybraná karta Konektory. U každého konektoru s typem Doména služby Active Directory Services klikněte na Spustit, vyberte Rozdílová synchronizace a OK.
- Vyberte konektor s typem Microsoft Entra ID (Microsoft). Klikněte na Spustit, vyberte Rozdílová synchronizace a OK.
Nyní jste připravili export změn do Microsoft Entra ID a místní služby AD (pokud používáte hybridní nasazení Exchange). Následující kroky vám umožní zkontrolovat, co se má změnit, než začnete exportovat do adresářů.
Ověření
- Spusťte příkazový řádek a přejděte na
%ProgramFiles%\Microsoft Azure AD Sync\bin
- Spuštění:
csexport "Name of Connector" %temp%\export.xml /f:x
Název konektoru najdete v synchronizační službě. Má podobný název jako "contoso.com – Microsoft Entra ID" pro Microsoft Entra ID. - Spustit:
CSExportAnalyzer %temp%\export.xml > %temp%\export.csv
Soubor máte v %temp% s názvem export.csv, který je možné prozkoumat v Microsoft Excelu. Tento soubor obsahuje všechny změny, které se mají exportovat. - Proveďte potřebné změny dat nebo konfigurace a spusťte tyto kroky znovu (import a synchronizace a ověření), dokud se neočekávají změny, které se mají exportovat.
Principy souboru export.csv
Většina souboru je sama vysvětlující. Některé zkratky pro pochopení obsahu:
- OMODT – Typ úpravy objektu. Označuje, jestli je operace na úrovni objektu přidání, aktualizace nebo odstranění.
- AMODT – typ úpravy atributu. Označuje, jestli je operace na úrovni atributu přidání, aktualizace nebo odstranění.
Načtení běžných identifikátorů
Soubor export.csv obsahuje všechny změny, které se mají exportovat. Každý řádek odpovídá změně objektu v prostoru spojnice a objekt je identifikován atributem DN. Atribut DN je jedinečný identifikátor přiřazený objektu v prostoru konektoru. Pokud máte v export.csv mnoho řádků nebo změn k analýze, může být obtížné zjistit, pro které objekty se změny vztahují, na základě samotného atributu DN. Pokud chcete zjednodušit proces analýzy změn, použijte skript PowerShellu csanalyzer.ps1
. Skript načte běžné identifikátory (například displayName, userPrincipalName) objektů. Použití skriptu:
- Zkopírujte skript PowerShellu z oddílu CSAnalyzer do souboru s názvem
csanalyzer.ps1
. - Otevřete okno PowerShellu a přejděte do složky, do které jste vytvořili skript PowerShellu.
- Spustit:
.\csanalyzer.ps1 -xmltoimport %temp%\export.xml
. - Teď máte soubor s názvem processedusers1.csv , který je možné prozkoumat v Microsoft Excelu. Všimněte si, že soubor poskytuje mapování z atributu DN na běžné identifikátory (například displayName a userPrincipalName). V současné době nezahrnuje skutečné změny atributů, které se chystáte exportovat.
Přepnutí aktivního serveru
Microsoft Entra Connect je možné nastavit v nastavení vysoké dostupnosti typu Aktivní-pasivní, kde jeden server aktivně odesílá změny synchronizovaných objektů AD do Microsoft Entra ID a pasivní server dílčí fáze těchto změn v případě, že musí převzít.
Poznámka:
Aplikaci Microsoft Entra Connect nelze nastavit v nastavení active-active. Musí být aktivní-pasivní. Zajistěte, aby změny aktivně synchronizoval pouze server Microsoft Entra Connect 1.
Další informace o nastavení serveru Microsoft Entra Connect Sync v pracovním režimu najdete v části Pracovní režim.
Je možné, že budete muset provést převzetí služeb při selhání synchronizačních serverů z několika důvodů, jako je upgrade verze služby Microsoft Entra Connect nebo upozornění, že služba stavu synchronizační služby nedostává aktuální informace. V těchto událostech se můžete pokusit o převzetí služeb při selhání synchronizačních serverů pomocí následujících kroků.
Důležité
Přepnutí přípravného serveru do aktivního režimu může mít v synchronizaci závažný dopad, pokud nejsou splněny následující podmínky. Před provedením této operace vždy spusťte počáteční cyklus synchronizace a před provedením této operace ověřte nevyřízené exporty.
Požadavky
- Aktuálně aktivní synchronizační server Microsoft Entra Connect
- Jeden přípravný synchronizační server Microsoft Entra Connect
- Pracovní server má povolený plánovač synchronizace a nedávno se synchronizoval s ID Microsoft Entra.
- V případě jakýchkoli aktualizací v pravidlech synchronizace nebo v oboru synchronizace spusťte počáteční cyklus synchronizace.
- Ověřte, že je váš synchronizační server Microsoft Entra Connect nakonfigurovaný tak, aby se zabránilo náhodnému odstranění.
- Ověřte nevyřízené exporty a ověřte , že nedošlo k významným aktualizacím, a tyto aktualizace se očekávají.
- Kontrola aktualizace agenta Microsoft Entra Connect Health na portálu Microsoft Entra Connect Health
- Před přepnutím přípravného serveru na aktivní přepněte aktuální aktivní server do pracovního režimu.
Změna aktuálně aktivního synchronizačního serveru na pracovní režim
Musíme zajistit, aby v průběhu tohoto procesu v každém okamžiku synchronizoval změny jenom jeden synchronizační server. Pokud je aktuálně aktivní synchronizační server dostupný, můžete ho přesunout do pracovního režimu pomocí následujících kroků. Pokud není dostupný, ujistěte se, že server nebo virtuální počítač neočekávaně znovu nezíská přístup, a to buď vypnutím serveru nebo jeho izolováním od odchozích připojení.
- Pro aktuálně aktivní server Microsoft Entra Connect otevřete průvodce Microsoft Entra Connect a klikněte na Konfigurovat pracovní režim a pak na Další:
- Budete se muset přihlásit k Microsoft Entra ID pomocí přihlašovacích údajů správce hybridní identity:
- Zaškrtněte políčko Pro pracovní režim a klikněte na Další:
- Server Microsoft Entra Connect zkontroluje nainstalované součásti a potom zobrazí výzvu, jestli chcete spustit proces synchronizace po dokončení změny konfigurace:
Vzhledem k tomu, že server je v pracovním režimu, nebude zapisovat změny do Microsoft Entra ID, ale zachová všechny změny v AD v prostoru konektoru, připravené k jejich zápisu. Doporučujeme ponechat proces synchronizace pro server v pracovním režimu, takže pokud se stane aktivní, bude se rychle převzít a nebude muset provést velkou synchronizaci, aby se zachytil aktuální stav objektů Active Directory / Microsoft Entra v oboru.
Po výběru pro spuštění procesu synchronizace a kliknutí na Konfigurovat se server Microsoft Entra Connect nakonfiguruje do přípravného režimu. Po dokončení se zobrazí výzva s obrazovkou s potvrzením, že je pracovní režim povolený. Můžete kliknout na Ukončit a dokončit.
Spuštěním Windows PowerShellu můžete ověřit, že je server úspěšně v pracovním režimu, načtěte modul ADSync a pomocí následujících příkazů ověřte konfiguraci plánovače ADSync:
Import-Module ADSync
Get-ADSyncScheduler
Ve výsledcích ověřte hodnotu nastavení StagingModeEnabled. Pokud se server úspěšně přepnul do přípravného režimu, hodnota tohoto nastavení by měla být true jako v následujícím příkladu:
Změna aktuálního přípravného synchronizačního serveru na aktivní režim
V tuto chvíli by všechny naše synchronizační servery Microsoft Entra Connect měly být v pracovním režimu a neměly by exportovat změny. Náš přípravný synchronizační server teď můžeme přesunout do aktivního režimu a aktivně synchronizovat změny.
- Nyní přejděte na server Microsoft Entra Connect, který byl původně v pracovním režimu, a otevřete průvodce Microsoft Entra Connect.
Klikněte na Konfigurovat pracovní režim a klikněte na Další:
Zpráva v dolní části průvodce indikuje, že tento server je v pracovním režimu.
- Přihlaste se k ID Microsoft Entra a pak přejděte na obrazovku Přípravného režimu.
Zrušte zaškrtnutí políčka pro pracovní režim a klikněte na Další.
Podle upozornění na této stránce je důležité zajistit, aby se aktivně nesynchronizuje žádný jiný server Microsoft Entra Connect.
Najednou by měl existovat jenom jeden aktivní server Microsoft Entra Connect Sync.
- Po zobrazení výzvy ke spuštění procesu synchronizace zaškrtněte toto políčko a klikněte na Konfigurovat:
- Po dokončení procesu byste měli získat následující potvrzovací obrazovku, kde můžete kliknout na Ukončit a dokončit:
- Pokud chcete ověřit, že tento proces funguje, otevřete konzolu synchronizační služby a zkontrolujte, jestli jsou spuštěné úlohy exportu:
Zotavení po havárii
Součástí návrhu implementace je naplánovat, co dělat v případě havárie, kdy ztratíte synchronizační server. Můžete využít různé modely, a to v závislosti na několika faktorech, mezi které patří:
- Jaká je vaše tolerance pro nemožnost provádět změny objektů v ID Microsoft Entra během výpadku?
- Pokud využíváte synchronizaci hesel, souhlasí uživatelé s tím, že pokud změní své heslo v místním prostředí, budou muset v Microsoft Entra ID používat staré heslo?
- Máte nějakou závislost na operacích v reálném čase, jako je zpětný zápis hesla?
V závislosti na odpovědích na tyto otázky a zásady vaší organizace je možné implementovat jednu z následujících strategií:
- V případě potřeby znovu sestavte.
- Máte náhradní pohotovostní server, který se označuje jako pracovní režim.
- Používejte virtuální počítače.
Pokud nepoužíváte integrovanou databázi SQL Express, měli byste si také projít část s vysokou dostupností SQL.
Opětovné sestavení podle potřeby
V případě potřeby je realizovatelná strategie plánování opětovného sestavení serveru. Instalace synchronizačního modulu a provedení počátečního importu a synchronizace je obvykle možné dokončit během několika hodin. Pokud není k dispozici náhradní server, je možné dočasně použít řadič domény k hostování synchronizačního modulu.
Server synchronizačního stroje neukládá o objektech žádný stav, aby bylo možné databázi znovu vytvořit z dat ve službě Active Directory a v Microsoft Entra ID. Atribut sourceAnchor slouží ke spojení objektů z místního prostředí a cloudu. Pokud server znovu sestavíte s existujícími objekty místně a cloudem, synchronizační modul tyto objekty znovu spojí při přeinstalaci. Věci, které potřebujete zdokumentovat a uložit, jsou změny konfigurace provedené na serveru, například filtrování a synchronizační pravidla. Před zahájením synchronizace je nutné tyto vlastní konfigurace znovu použít.
Mít náhradní pohotovostní server – pracovní režim
Pokud máte složitější prostředí, doporučuje se mít jeden nebo více pohotovostních serverů. Během instalace můžete povolit, aby byl server v pracovním režimu.
Další informace najdete v pracovním režimu.
Použití virtuálních počítačů
Běžnou a podporovanou metodou je spuštění synchronizačního modulu na virtuálním počítači. V případě, že má hostitel problém, je možné image se serverem synchronizačního stroje migrovat na jiný server.
Vysoká dostupnost SQL
Pokud nepoužíváte SQL Server Express, který se dodává se službou Microsoft Entra Connect, měli byste zvážit také vysokou dostupnost SQL Serveru. Mezi podporovaná řešení vysoké dostupnosti patří clustering SQL a skupiny dostupnosti AlwaysOn (AOA). Nepodporovaná řešení zahrnují zrcadlení.
Podpora sql AOA byla přidána do microsoft Entra Connect ve verzi 1.1.524.0. Před instalací nástroje Microsoft Entra Connect je nutné povolit SLUŽBU SQL AOA. Během instalace microsoft Entra Connect zjistí, jestli je zadaná instance SQL povolená pro SQL AOA, nebo ne. Pokud je povolená služba SQL AOA, Microsoft Entra Connect dále zjistí, jestli je služba SQL AOA nakonfigurovaná tak, aby používala synchronní replikaci nebo asynchronní replikaci. Při nastavování naslouchacího procesu skupiny dostupnosti musí být vlastnost RegisterAllProvidersIP nastavena na hodnotu 0. Microsoft Entra Connect aktuálně používá sql Native Client pro připojení k SQL a SQL Native Client nepodporuje použití vlastnosti MultiSubNetFailover.
Příloha CSAnalyzer
Informace o použití tohoto skriptu najdete v části Věnované ověření .
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
}
Další kroky
Témata s přehledem