Microsoft Entra Připojení: 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 microsoft Entra Připojení s povolenou funkcí synchronizace 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:

  1. Příprava
  2. Konfigurace
  3. Import a synchronizace
  4. Ověřit
  5. Přepnutí aktivního serveru

Příprava

  1. Nainstalujte microsoft Entra Připojení, 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. Snímek obrazovky ukazuje stránku Připraveno ke konfiguraci v dialogovém okně Microsoft Entra Připojení.
  2. 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 microsoft Entra Připojení dokumentátor konfigurace.

Import a synchronizace

  1. Vyberte Připojení or a vyberte první Připojení or s typem Doména služby Active Directory Services. Klikněte na Spustit, vyberte Úplný import a OK. Tento postup proveďte u všech Připojení orů tohoto typu.
  2. Vyberte Připojení or s typem Microsoft Entra ID (Microsoft). Klikněte na Spustit, vyberte Úplný import a OK.
  3. Ujistěte se, že je stále vybraná karta Připojení orů. Pro každý Připojení or s typem Doména služby Active Directory Services klikněte na Spustit, vyberte Rozdílová synchronizace a OK.
  4. Vyberte Připojení or 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í

  1. Spusťte příkazový řádek a přejděte na %ProgramFiles%\Microsoft Azure AD Sync\bin
  2. Spuštění: csexport "Name of Connector" %temp%\export.xml /f:x Název Připojení oru najdete v synchronizační službě. Má podobný název jako "contoso.com – Microsoft Entra ID" pro Microsoft Entra ID.
  3. 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.
  4. 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:

  1. Zkopírujte skript PowerShellu z oddílu CSAnalyzer do souboru s názvem csanalyzer.ps1.
  2. Otevřete okno PowerShellu a přejděte do složky, do které jste vytvořili skript PowerShellu.
  3. Spustit: .\csanalyzer.ps1 -xmltoimport %temp%\export.xml.
  4. 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ě neobsahuje skutečné změny atributů, které se chystáte exportovat.

Přepnutí aktivního serveru

Microsoft Entra Připojení lze nastavit v nastavení vysoké dostupnosti active-pasivní, kde jeden server bude aktivně odesílat změny synchronizovaných objektů AD do Microsoft Entra ID a pasivní server tyto změny připraví v případě, že bude muset převzít.

Poznámka:

V instalačním programu Active-Active nelze nastavit Připojení Microsoft Entra. Musí být aktivní-pasivní. Ujistěte se, že aktivně synchronizuje změny pouze 1 microsoft Entra Připojení server.

Další informace o nastavení serveru Microsoft Entra Připojení Sync v pracovním režimu najdete v pracovním režimu.

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 Připojení nebo přijetí výstrahy, že služba health service 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í Microsoft Entra Připojení Sync Server
  • Jeden přípravný server Microsoft Entra Připojení Sync
  • 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 Připojení 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 Připojení Health na portálu Microsoft Entra Připojení 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í.

  1. Pro aktuálně aktivní server Microsoft Entra Připojení otevřete Průvodce Připojení Microsoft Entra a klikněte na Konfigurovat pracovní režim a pak na Další:

    Snímek obrazovky znázorňující pracovní režim zvýrazněný v dialogovém okně Active Microsoft Entra Připojení

  2. Budete se muset přihlásit k Microsoft Entra ID pomocí globálního Správa istratoru nebo hybridní identity Správa přihlašovacích údajů:

    Snímek obrazovky s výzvou přihlásit se v dialogovém okně Active Microsoft Entra Připojení

  3. Zaškrtněte políčko Pro pracovní režim a klikněte na Další:

    Snímek obrazovky znázorňující konfiguraci pracovního režimu v dialogovém okně Aktivní Připojení Microsoft Entra

  4. Microsoft Entra Připojení server zkontroluje nainstalované součásti a pak vás vyzve, zda chcete spustit proces synchronizace po dokončení změny konfigurace:

    Snímek obrazovky ukazuje obrazovku Připraveno ke konfiguraci v dialogovém okně Aktivní Připojení Microsoft Entra.

Vzhledem k tomu, že server bude v pracovním režimu, nebude zapisovat změny do Microsoft Entra ID, ale zachovat všechny změny v AD v jeho Připojení or prostoru 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.

  1. Po výběru pro spuštění procesu synchronizace a kliknutí na Konfigurovat se server Microsoft Entra Připojení 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.

  2. 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:

Snímek obrazovky znázorňující konzolu synchronizační služby v dialogovém okně Active Microsoft Entra Připojení

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 Připojení 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.

  1. Nyní přejděte na server Microsoft Entra Připojení, který byl původně v pracovním režimu, a otevřete průvodce Microsoft Entra Připojení.

    Klikněte na Konfigurovat pracovní režim a klikněte na Další:

    Snímek obrazovky znázorňující pracovní režim zvýrazněný v pracovním dialogovém okně Microsoft Entra Připojení

    Zpráva v dolní části průvodce indikuje, že tento server je v pracovním režimu.

  2. 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ší.

    Snímek obrazovky znázorňující konfiguraci pracovního režimu v pracovním dialogovém okně Microsoft Entra Připojení

    Podle upozornění na této stránce je důležité zajistit, aby se aktivně nesynchronizuje žádný jiný server Microsoft Entra Připojení.

    Existuje pouze jeden aktivní server Microsoft Entra Připojení Sync.

  3. Po zobrazení výzvy ke spuštění procesu synchronizace zaškrtněte toto políčko a klikněte na Konfigurovat:

    Snímek obrazovky ukazuje obrazovku Připraveno ke konfiguraci v pracovním dialogovém okně Microsoft Entra Připojení.

  4. Po dokončení procesu byste měli získat následující potvrzovací obrazovku, kde můžete kliknout na Ukončit a dokončit:

    Snímek obrazovky s potvrzením v pracovním dialogovém okně Microsoft Entra Připojení

  5. Můžete zkontrolovat, jestli to funguje, otevřením konzoly synchronizační služby a kontrolou, jestli jsou spuštěné úlohy exportu:

    Snímek obrazovky znázorňující konzolu synchronizační služby v pracovním dialogovém okně Microsoft Entra Připojení

Zotavení po havárii

Při návrhu implementace je potřeba naplánovat, co dělat v případě havárie a ztráty serveru synchronizace. 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, takže databázi lze 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ý je součástí microsoft Entra Připojení, měli byste zvážit i 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 Připojení ve verzi 1.1.524.0. Před instalací nástroje Microsoft Entra Připojení musíte povolit SQL AOA. Během instalace microsoft Entra Připojení zjistí, jestli je zadaná instance SQL povolená pro SQL AOA, nebo ne. Pokud je povolená funkce SQL AOA, Microsoft Entra Připojení další informace o tom, 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. Je to proto, že Microsoft Entra Připojení aktuálně používá sql Native Client pro připojení k SQL a SQL Native Client nepodporuje použití multiSubNetFailover vlastnost.

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