Microsoft Entra Verbinding maken: Faseringsserver en herstel na noodgevallen
Met een server in de faseringsmodus kunt u wijzigingen aanbrengen in de configuratie en een voorbeeld van de wijzigingen bekijken voordat u de server activeert. U kunt hiermee ook een volledige import en volledige synchronisatie uitvoeren om te controleren of alle wijzigingen naar verwachting zijn voordat u deze wijzigingen in uw productieomgeving aanbrengt.
Faseringsmodus
De faseringsmodus kan worden gebruikt voor verschillende scenario's, waaronder:
- Hoge beschikbaarheid.
- Nieuwe configuratiewijzigingen testen en implementeren.
- Een nieuwe server introduceren en de oude buiten gebruik stellen.
Tijdens de installatie kunt u de server selecteren die zich in de faseringsmodus bevindt. Met deze actie wordt de server actief voor importeren en synchroniseren, maar er worden geen exports uitgevoerd. Een server in de faseringsmodus voert geen wachtwoordsynchronisatie of wachtwoord terugschrijven uit, ook niet als u deze functies tijdens de installatie hebt geselecteerd. Als u de faseringsmodus uitschakelt, begint de server met exporteren en worden wachtwoordsynchronisatie en wachtwoord terugschrijven ingeschakeld.
Notitie
Stel dat u een Microsoft Entra-Verbinding maken hebt waarvoor de functie Wachtwoord-hashsynchronisatie is ingeschakeld. Wanneer u de faseringsmodus inschakelt, stopt de server met het synchroniseren van wachtwoordwijzigingen vanuit on-premises AD. Wanneer u de faseringsmodus uitschakelt, hervat de server het synchroniseren van wachtwoordwijzigingen vanaf het punt waar deze de laatste keer is gestopt. Als de server gedurende een langere periode in de faseringsmodus blijft, kan het even duren voordat de server alle wachtwoordwijzigingen heeft gesynchroniseerd die zich tijdens die periode hebben voorgedaan.
U kunt nog steeds een export afdwingen met behulp van Synchronization Service Manager.
Een server in de faseringsmodus blijft wijzigingen ontvangen van Active Directory en Microsoft Entra ID en kan snel de verantwoordelijkheden van een andere server overnemen in het geval van een fout. Als u configuratiewijzigingen aan uw primaire server aanbrengt, is het uw verantwoordelijkheid om dezelfde wijzigingen aan te brengen op de server in de faseringsmodus.
Voor degenen met kennis van oudere synchronisatietechnologieën: de faseringsmodus is afwijkend, omdat de server een eigen SQL-database heeft. Met deze architectuur kan de faseringsmodusserver zich in een ander datacenter bevinden.
Configuratie van een server controleren
Voer de volgende stappen uit om deze methode toe te passen:
Voorbereiden
- Installeer Microsoft Entra Verbinding maken, selecteer faseringsmodus en hef de selectie van de synchronisatie op de laatste pagina in de installatiewizard op. In deze modus kunt u de synchronisatie-engine handmatig uitvoeren.
- Meld u af en meld u opnieuw aan en selecteer in het startmenu de optie Synchronisatieservice.
Configuratie
Als u aangepaste wijzigingen hebt aangebracht aan de primaire server en de configuratie wilt vergelijken met de faseringsserver, gebruikt u Microsoft Entra Verbinding maken configuratiedocumentatiedocumentatie.
Importen en synchroniseren
- Selecteer Connectors en selecteer de eerste connector van het type Active Directory Domain Services. Klik op Uitvoeren, selecteer Volledige importbewerking en OK. Voer deze stappen uit voor alle connectors van dit type.
- Selecteer de Verbinding maken or met het type Microsoft Entra ID (Microsoft). Klik op Uitvoeren, selecteer Volledige importbewerking en OK.
- Zorg ervoor dat het tabblad Connectors nog steeds is geselecteerd. Klik voor elke connector van het type Active Directory Domain Services op Uitvoeren, selecteer Deltasynchronisatie en OK.
- Selecteer de Verbinding maken or met het type Microsoft Entra ID (Microsoft). Klik op Uitvoeren, selecteer Deltasynchronisatie en OK.
U hebt nu exportwijzigingen in Microsoft Entra ID en on-premises AD gefaseerd (als u hybride implementatie van Exchange gebruikt). Met de volgende stappen kunt u controleren wat er gaat veranderen voordat u de export naar de mappen daadwerkelijk start.
Verifiëren
- Start een cmd-prompt en ga naar
%ProgramFiles%\Microsoft Azure AD Sync\bin
- Voer het volgende uit:
csexport "Name of Connector" %temp%\export.xml /f:x
De naam van de connector vindt u in de synchronisatieservice. Het heeft een naam die lijkt op 'contoso.com – Microsoft Entra ID' voor Microsoft Entra ID. - Voer het volgende uit:
CSExportAnalyzer %temp%\export.xml > %temp%\export.csv
U hebt een bestand in %temp% met de naam export.csv dat in Microsoft Excel kan worden onderzocht. Dit bestand bevat alle wijzigingen die op het punt staan te worden geëxporteerd. - Breng eventuele noodzakelijke wijzigingen aan de gegevens of configuratie aan en voer deze stappen opnieuw uit (importeren, synchroniseren en verifiëren) totdat de wijzigingen die binnenkort worden geëxporteerd, naar wens zijn.
Informatie over het bestand export.csv
Het grootste deel van het bestand spreekt voor zich. Enkele afkortingen voor een goed begrip van de inhoud:
- OMODT: Object Modification Type (objectwijzigingstype). Geeft aan of de bewerking op objectniveau Toevoegen, Bijwerken of Verwijderen is.
- AMODT – Attribute Modification Type (kenmerkwijzigingstype). Geeft aan of de bewerking op kenmerkniveau Toevoegen, Bijwerken of Verwijderen is.
Algemene id's ophalen
Het bestand export.csv bevat alle wijzigingen die op het punt staan te worden geëxporteerd. Elke rij komt overeen met een wijziging voor een object in het connectorgebied en het object wordt door het DN-kenmerk geïdentificeerd. Het DN-kenmerk is een unieke id, die aan een object in het connectorgebied is toegewezen. Wanneer u veel rijen/wijzigingen in de export.csv moet analyseren, kan het lastig zijn om te achterhalen voor welke objecten de wijzigingen zijn bedoeld op basis van slechts het DN-kenmerk. Gebruik PowerShell-script csanalyzer.ps1
om het analyseren van de wijzigingen te vereenvoudigen. Met het script worden algemene id's (bijvoorbeeld displayName, userPrincipalName) van de objecten opgehaald. Het script gebruiken:
- Kopieer het PowerShell-script vanuit de sectie CSAnalyzer naar een bestand met de naam
csanalyzer.ps1
. - Open een PowerShell-venster en blader naar de map waarin u het PowerShell-script hebt gemaakt.
- Uitvoeren:
.\csanalyzer.ps1 -xmltoimport %temp%\export.xml
. - U hebt nu een bestand met de naam processedusers1.csv, dat in Microsoft Excel kan worden onderzocht. Het bestand bevat een toewijzing van het DN-kenmerk aan algemene id's (bijvoorbeeld displayName en userPrincipalName). Het bevat momenteel niet de werkelijke kenmerkwijzigingen die op het punt staan te worden geëxporteerd.
Actieve server wisselen
Microsoft Entra Verbinding maken kan worden ingesteld in een actief-passieve hoge beschikbaarheidsinstallatie, waarbij één server actief wijzigingen naar de gesynchroniseerde AD-objecten naar Microsoft Entra-id pusht en de passieve server deze wijzigingen in het geval dat deze moet worden overgenomen.
Notitie
U kunt Microsoft Entra Verbinding maken niet instellen in een actief-actief-installatie. De installatie moet Actief-Passief zijn. Zorg ervoor dat slechts 1 Microsoft Entra-Verbinding maken-server wijzigingen actief synchroniseert.
Zie de faseringsmodus voor meer informatie over het instellen van een Microsoft Entra Verbinding maken Sync-server in de faseringsmodus
Mogelijk moet u om verschillende redenen een failover van de synchronisatieservers uitvoeren, zoals het upgraden van de versie van Microsoft Entra Verbinding maken of het ontvangen van een waarschuwing dat de statusservice van de Synchronisatieservice geen up-to-date informatie ontvangt. In deze gevallen kunt u een failover van de synchronisatieservers uitvoeren door de onderstaande stappen uit te voeren.
Belangrijk
Het overschakelen van een faseringsserver naar de actieve modus kan ernstige gevolgen hebben in de synchronisatie als niet aan de volgende voorwaarden wordt voldaan. Als voorzorgsmaatregel voert u altijd een eerste synchronisatiecyclus uit en controleert u de in behandeling zijnde exports voordat u deze bewerking uitvoert.
Vereisten
- Eén actieve Microsoft Entra Verbinding maken Sync Server
- Eén staging Microsoft Entra Verbinding maken Sync Server
- De faseringsserver heeft synchronisatieplanner ingeschakeld en is onlangs gesynchroniseerd met Microsoft Entra-id
- In het geval van updates in synchronisatieregels of synchronisatiebereik voert u een initiële synchronisatiecyclus uit
- Controleer of uw Microsoft Entra-Verbinding maken-synchronisatieserver is geconfigureerd om onbedoelde verwijderingen te voorkomen
- Controleer of de export in behandeling is en controleer of er geen significante updates zijn en of dergelijke updates worden verwacht
- Controleer of microsoft Entra Verbinding maken Health-agent is bijgewerkt door de server te controleren in de Microsoft Entra Verbinding maken Health-portal
- Schakel de huidige actieve server over naar de faseringsmodus voordat u de faseringsserver overschakelt naar actief
De momenteel actieve synchronisatieserver in de faseringsmodus overbrengen
Zorg ervoor dat tijdens dit proces altijd slechts één synchronisatieserver wijzigingen synchroniseert. Als de momenteel actieve synchronisatieserver bereikbaar is, kunt u de onderstaande stappen uitvoeren om deze naar de faseringsmodus te verplaatsen. Als deze niet bereikbaar is, moet u ervoor zorgen dat de server of VM niet onverwacht weer toegang krijgt door de server af te sluiten of te isoleren van uitgaande verbindingen.
Voor de momenteel actieve Microsoft Entra Verbinding maken-server opent u de wizard Microsoft Entra Verbinding maken en klikt u op Faseringsmodus configureren en vervolgens op Volgende:
U moet zich aanmelden bij Microsoft Entra ID met de referenties van Global Beheer istrator of Hybrid Identity Beheer:
Schakel het selectievakje bij de faseringsmodus in en klik op Volgende:
De Microsoft Entra Verbinding maken-server controleert op geïnstalleerde onderdelen en vraagt u vervolgens of u het synchronisatieproces wilt starten wanneer de configuratiewijziging is voltooid:
Omdat de server zich in de faseringsmodus bevindt, worden er geen wijzigingen naar Microsoft Entra-id geschreven, maar blijven wijzigingen in de AD behouden in de Verbinding maken or Space, klaar om ze te schrijven.
Het is raadzaam om het synchronisatieproces voor de server in de faseringsmodus ingeschakeld te laten, dus als het actief wordt, wordt het snel overgenomen en hoeft u geen grote synchronisatie uit te voeren om de huidige status van de Active Directory-/Microsoft Entra-objecten binnen het bereik in te halen.
Nadat u hebt geselecteerd om het synchronisatieproces te starten en op Configureren te klikken, wordt de Microsoft Entra-Verbinding maken-server geconfigureerd in de faseringsmodus.
Wanneer dit is voltooid, verschijnt er een scherm waarin wordt bevestigd dat de faseringsmodus is ingeschakeld.
U kunt op Afsluiten klikken om te voltooien.U kunt controleren of de server zich in de faseringsmodus bevindt door Windows PowerShell te openen, de module ADSync te laden en de configuratie van ADSync Scheduler te controleren met behulp van de volgende opdrachten:
Import-Module ADSync
Get-ADSyncScheduler
Controleer in de resultaten de waarde van de instelling StagingModeEnabled. Als de server is overgeschakeld naar de faseringsmodus, moet de waarde van deze instelling waar zijn, zoals in het onderstaande voorbeeld:
Faseringssynchronisatieserver overbrengen naar actieve modus
Op dit moment moeten al onze Microsoft Entra-Verbinding maken-synchronisatieservers zich in de faseringsmodus bevinden en geen wijzigingen exporteren. De faseringssynchronisatieserver kan naar de actieve modus worden overgebracht en er kunnen actief wijzigingen worden gesynchroniseerd.
Ga nu naar de Microsoft Entra Verbinding maken-server die zich oorspronkelijk in de faseringsmodus bevond en open de wizard Microsoft Entra Verbinding maken.
Klik op Faseringsmodus configureren en klik op Volgende:
Het bericht onderaan de wizard geeft aan dat deze server zich in de faseringsmodus bevindt.
Meld u aan bij Microsoft Entra ID en ga vervolgens naar het scherm Faseringsmodus.
Schakel het selectievakje bij de faseringsmodus uit en klik op Volgende
Op basis van de waarschuwing op deze pagina is het belangrijk om ervoor te zorgen dat er geen andere Microsoft Entra-Verbinding maken-server actief wordt gesynchroniseerd.
Er mag maar één actieve Microsoft Entra Verbinding maken Sync-server zijn.
Wanneer u wordt gevraagd het synchronisatieproces te starten, vinkt u dit vakje aan en klikt u op Configureren:
Zodra het proces is voltooid, verschijnt het onderstaande bevestigingsscherm waarin u op Afsluiten kunt klikken:
U kunt controleren of dit werkt door de Synchronisatieserviceconsole te openen en te controleren of exporttaken worden uitgevoerd:
Herstel na noodgeval
Een onderdeel van het implementatieontwerp is het plannen van wat u moet doen in het geval er een noodgeval is waarbij de synchronisatieserver verloren gaat. Er zijn verschillende modellen die u kunt gebruiken. Welke u wilt gebruiken, is afhankelijk van verschillende factoren, waaronder:
- Wat is uw tolerantie voor het niet kunnen aanbrengen van wijzigingen in objecten in Microsoft Entra ID tijdens de downtime?
- Als u wachtwoordsynchronisatie gebruikt, accepteren de gebruikers dan dat ze het oude wachtwoord in Microsoft Entra ID moeten gebruiken voor het geval ze het on-premises wijzigen?
- Bent u afhankelijk van realtime bewerkingen, zoals wachtwoord terugschrijven?
Afhankelijk van de antwoorden op deze vragen en het beleid van de organisatie, kan een van de volgende strategieën worden geïmplementeerd:
- Herbouwen wanneer dat nodig is.
- Zorgen voor een extra stand-byserver, ook wel faseringsmodus genoemd.
- Virtuele machines gebruiken.
Als u de ingebouwde SQL Express-database niet gebruikt, moet u ook de sectie Hoge beschikbaarheid van SQL bekijken.
Herbouwen wanneer dat nodig is
Het is een nuttige strategie om een server opnieuw op te bouwen, indien nodig. Normaal gesproken kan het installeren van de synchronisatie-engine en het initiële importeren en synchroniseren binnen een paar uur worden voltooid. Als er geen extra server beschikbaar is, is het mogelijk om tijdelijk een domeincontroller te gebruiken om de synchronisatie-engine te hosten.
De synchronisatie-engineserver slaat geen status op over de objecten, zodat de database opnieuw kan worden opgebouwd op basis van de gegevens in Active Directory en Microsoft Entra-id. Het kenmerk sourceAnchor wordt gebruikt om de on-premises objecten en die uit de cloud samen te voegen. Als u de server herbouwt met bestaande on-premises objecten en cloudobjecten, worden die objecten bij het opnieuw installeren door de synchronisatie-engine opnieuw met elkaar in overeenstemming gebracht. Documenteer de configuratiewijzigingen aan de server en sla deze op, bijvoorbeeld de filter- en synchronisatieregels. Deze aangepaste configuraties moeten opnieuw worden toegepast voordat u begint met synchroniseren.
Zorgen voor een extra stand-byserver - faseringsmodus
Als u een complexere omgeving hebt, wordt aangeraden om een of meer stand-byservers te hebben. Tijdens de installatie kunt u ervoor zorgen dat een server in de faseringsmodus moet worden gebracht.
Zie Faseringsmodus voor meer informatie.
Virtuele machines gebruiken
Een veelgebruikte en ondersteunde methode is het uitvoeren van de synchronisatie-engine op een virtuele machine. Als de host een probleem heeft, kan de installatiekopie met de synchronisatie-engineserver naar een andere server worden gemigreerd.
Hoge beschikbaarheid van SQL
Als u niet de SQL Server Express gebruikt die wordt geleverd bij Microsoft Entra Verbinding maken, moet hoge beschikbaarheid voor SQL Server ook worden overwogen. De ondersteunde oplossingen voor hoge beschikbaarheid zijn onder meer het clusteren van SQL en AOA (Always On-beschikbaarheidsgroepen). Niet ondersteund wordt bijvoorbeeld spiegeling.
Ondersteuning voor SQL AOA is toegevoegd aan Microsoft Entra Verbinding maken in versie 1.1.524.0. U moet SQL AOA inschakelen voordat u Microsoft Entra Verbinding maken installeert. Tijdens de installatie detecteert Microsoft Entra Verbinding maken of het opgegeven SQL-exemplaar is ingeschakeld voor SQL AOA of niet. Als SQL AOA is ingeschakeld, Verbinding maken Microsoft Entra verder uitzoeken of SQL AOA is geconfigureerd voor het gebruik van synchrone replicatie of asynchrone replicatie. Bij het instellen van de listener voor beschikbaarheidsgroepen moet de eigenschap RegisterAllProvidersIP worden ingesteld op 0. Dit komt doordat Microsoft Entra Verbinding maken momenteel gebruikmaakt van SQL Native Client om verbinding te maken met SQL en SQL Native Client, biedt geen ondersteuning voor het gebruik van de eigenschap MultiSubNetFailover.
Bijlage: CSAnalyzer
Zie de sectie controleren over hoe u dit script gebruikt.
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
}
Volgende stappen
Overzichtsonderwerpen