Condividi tramite


Microsoft Entra Connessione: server di gestione temporanea e ripristino di emergenza

Con un server in modalità di gestione temporanea è possibile apportare modifiche alla configurazione e visualizzarle in anteprima prima di attivare il server. È anche possibile eseguire operazioni di importazione e sincronizzazione complete per verificare che tutte le modifiche siano previste prima di introdurle nell'ambiente di produzione.

Modalità di gestione temporanea

La modalità di gestione temporanea può essere usata per diversi scenari, ad esempio:

  • Disponibilità elevata.
  • Testare e distribuire le nuove modifiche della configurazione.
  • Introdurre un nuovo server e rimuovere quello vecchio.

Durante l'installazione è possibile selezionare la modalità di gestione temporaneaper il server. In questo modo il server sarà attivo per le operazioni di importazione e sincronizzazione, ma non eseguirà esportazioni. Un server in modalità di gestione temporanea non eseguirà la sincronizzazione o il writeback delle password, anche se queste funzionalità sono state selezionate durante l'installazione. Quando si disabilita la modalità di gestione temporanea, il server avvia l'esportazione e abilita la sincronizzazione e il writeback delle password.

Nota

Si supponga di avere un Connessione Microsoft Entra con la funzionalità di sincronizzazione dell'hash delle password abilitata. Quando si abilita la modalità di gestione temporanea, il server arresta la sincronizzazione delle modifiche alla password da AD locale. Quando si disabilita la modalità di gestione temporanea, il server riepiloga la sincronizzazione delle modifiche alla password dal punto in cui è stata interrotta. Se il server viene lasciato in modalità di gestione temporanea per un lungo periodo di tempo, la sincronizzazione da parte del server di tutte le modifiche alle password, verificatesi durante un determinato periodo, potrebbe richiedere un po' di tempo.

È comunque possibile forzare un’esportazione utilizzando Synchronization Service Manager.

Un server in modalità di gestione temporanea continua a ricevere modifiche da Active Directory e microsoft Entra ID e può assumere rapidamente le responsabilità di un altro server in caso di errore. Se si apportano modifiche alla configurazione del server primario, è necessario apportare le stesse modifiche al server in modalità di gestione temporanea.

Coloro che hanno una conoscenza delle tecnologie di sincronizzazione precedenti tengano presente che la modalità di gestione temporanea è diversa, perché il server ha il proprio database SQL. L'architettura consente al server in modalità di gestione temporanea di trovarsi in un altro data center.

Verificare la configurazione di un server

Per applicare questo metodo, seguire questa procedura:

  1. Preparare
  2. Configurazione
  3. Importare e sincronizzare
  4. Verificare
  5. Cambiare il server attivo

Preparazione

  1. Installare Microsoft Entra Connessione, selezionare la modalità di gestione temporanea e deselezionare Avvia sincronizzazione nell'ultima pagina dell'installazione guidata. In questo modo è possibile eseguire manualmente il motore di sincronizzazione. Screenshot che mostra la pagina Ready to configure (Pronto per la configurazione) nella finestra di dialogo Microsoft Entra Connessione.
  2. Disconnettersi e accedere, quindi dal menu Start selezionare Synchronization Service(Servizio di sincronizzazione).

Impostazione

Se sono state apportate modifiche personalizzate al server primario e si vuole confrontare la configurazione con il server di gestione temporanea, usare Microsoft Entra Connessione documenter di configurazione.

Importare e sincronizzare

  1. Selezionare Connettori e quindi selezionare il primo connettore con il tipo Servizi di dominio Active Directory. Fare clic su Run (Esegui), selezionare Full import (Importazione completa) e fare clic su OK. Eseguire questi passaggi per tutti i connettori di questo tipo.
  2. Selezionare il Connessione or con il tipo Microsoft Entra ID (Microsoft).Select the Connessione or with type Microsoft Entra ID (Microsoft). Fare clic su Run (Esegui), selezionare Full import (Importazione completa) e fare clic su OK.
  3. Assicurarsi che la scheda Connectors (Connettori) sia ancora selezionata. Per ogni connettore con il tipo Active Directory Domain Services fare clic su Run (Esegui), selezionare Delta Synchronization (Sincronizzazione delta) e fare clic su OK.
  4. Selezionare il Connessione or con il tipo Microsoft Entra ID (Microsoft).Select the Connessione or with type Microsoft Entra ID (Microsoft). Fare clic su Run (Esegui), selezionare Delta Synchronization (Sincronizzazione delta) e quindi fare clic su OK.

Le modifiche all'esportazione temporanea sono state apportate a Microsoft Entra ID e AD locale (se si usa la distribuzione ibrida di Exchange). I passaggi successivi consentono di ispezionare quali sono gli elementi che stanno per essere modificati prima di avviare effettivamente l'esportazione nelle directory.

Verificare

  1. Avviare un prompt dei comandi e passare a %ProgramFiles%\Microsoft Azure AD Sync\bin
  2. Eseguire: csexport "Name of Connector" %temp%\export.xml /f:x Il nome del connettore si trova nel servizio di sincronizzazione. Ha un nome simile a "contoso.com – Microsoft Entra ID" per Microsoft Entra ID.
  3. Eseguire: CSExportAnalyzer %temp%\export.xml > %temp%\export.csv Si avrà un file denominato export.csv in %temp%, che può essere esaminato in Microsoft Excel. Questo file contiene tutte le modifiche in fase di esportazione.
  4. Apportare le modifiche necessarie ai dati o alla configurazione ed eseguire di nuovo questi passaggi (importazione, sincronizzazione e verifica) finché le modifiche che verranno esportate non saranno quelle previste.

Informazioni sul file export.csv

La maggior parte del file è facilmente comprensibile. Ecco alcune abbreviazioni per comprendere il contenuto:

  • OMODT: Object Modification Type. Indica se l'operazione a livello di oggetto è un'aggiunta, un aggiornamento o un'eliminazione.
  • AMODT: Attribute Modification Type. Indica se l'operazione a livello di attributo è un'aggiunta, un aggiornamento o un'eliminazione.

Recuperare gli identificatori comuni

Il file export.csv contiene tutte le modifiche da esportare. Ogni riga corrisponde a una modifica per un oggetto nello spazio connettore e l'oggetto è identificato dall'attributo DN. L'attributo DN è un identificatore univoco assegnato a un oggetto nello spazio connettore. Quando si dispone di molte righe/modifiche nel file export.csv da analizzare, potrebbe essere difficile individuare gli oggetti da modificare solo in base all'attributo DN. Per semplificare il processo di analisi delle modifiche, usare lo csanalyzer.ps1 script di PowerShell. Lo script recupera gli identificatori comuni (ad esempio displayName e userPrincipalName) degli oggetti. Per usare lo script:

  1. Copiare lo script di PowerShell dalla sezione CSAnalyzer in un file denominato csanalyzer.ps1.
  2. Aprire una finestra di PowerShell e passare alla cartella in cui è stato creato lo script di PowerShell.
  3. Eseguire: .\csanalyzer.ps1 -xmltoimport %temp%\export.xml.
  4. A questo punto si avrà un file denominato processedusers1.csv, che può essere esaminato in Microsoft Excel. Si noti che il file fornisce un mapping dall'attributo DN agli identificatori comuni (ad esempio displayName e userPrincipalName). Attualmente non include le modifiche effettive all'attributo che stanno per essere esportate.

Cambiare il server attivo

Microsoft Entra Connessione può essere configurato in una configurazione a disponibilità elevata attiva-passiva, in cui un server eseguirà attivamente il push delle modifiche agli oggetti AD sincronizzati con l'ID Microsoft Entra e il server passivo eseguirà la fase di queste modifiche nel caso in cui dovrà assumere il controllo.

Nota

Non è possibile configurare Microsoft Entra Connessione in una configurazione Active-Active. Deve essere Attivo-Passivo. Assicurarsi che solo 1 server Microsoft Entra Connessione stia sincronizzando attivamente le modifiche.

Per altre informazioni sulla configurazione di un server di sincronizzazione di Microsoft Entra Connessione in modalità di gestione temporanea, vedere modalità di gestione temporanea

Potrebbe essere necessario eseguire un failover dei server di sincronizzazione per diversi motivi, ad esempio aggiornare la versione di Microsoft Entra Connessione o ricevere un avviso che indica che il servizio di integrità del servizio di sincronizzazione non riceve informazioni aggiornate. In questi eventi è possibile tentare un failover dei server di sincronizzazione seguendo la procedura seguente.

Importante

Il passaggio di un server di staging alla modalità attiva può avere un impatto grave nella sincronizzazione, se le condizioni seguenti non vengono soddisfatte. Come precauzione, eseguire sempre un ciclo di sincronizzazione iniziale e Verificare le esportazioni in sospeso, prima di eseguire questa operazione.

Prerequisiti

  • Un server di sincronizzazione attualmente attivo di Microsoft Entra Connessione
  • Un server di sincronizzazione di Microsoft Entra Connessione staging
  • Il server di gestione temporanea ha l'utilità di pianificazione della sincronizzazione abilitata e ha eseguito di recente la sincronizzazione con Microsoft Entra ID
  • In caso di aggiornamenti nelle regole di sincronizzazione o nell'ambito di sincronizzazione, eseguire un ciclo di sincronizzazione iniziale
  • Verificare che il server di sincronizzazione microsoft Entra Connessione sia configurato per evitare eliminazioni accidentali
  • Verificare le esportazioni in sospeso e verificare che non siano presenti aggiornamenti significativi e che tali aggiornamenti siano previsti
  • Controllare se Microsoft Entra Connessione Health Agent viene aggiornato controllando il server in Microsoft Entra Connessione Health Portal
  • Passare al server attivo corrente alla modalità di gestione temporanea, prima di passare al server di gestione temporanea attivo

Modificare attualmente Active Sync Server in modalità di gestione temporanea

È necessario assicurarsi che un solo server di sincronizzazione stia sincronizzando le modifiche in qualsiasi momento durante questo processo. Se il server di sincronizzazione attualmente attivo è raggiungibile, è possibile eseguire i passaggi seguenti per spostarlo in modalità di gestione temporanea. Se non è raggiungibile, assicurarsi che il server o la macchina virtuale non recupeni l'accesso in modo imprevisto arrestando il server o isolandolo dalle connessioni in uscita.

  1. Per il server microsoft Entra Connessione attualmente attivo, aprire la procedura guidata microsoft Entra Connessione e fare clic su "Configura modalità di gestione temporanea" e quindi su Avanti:

    Screenshot che mostra la modalità di gestione temporanea evidenziata nella finestra di dialogo Active Microsoft Entra Connessione.

  2. Sarà necessario accedere a Microsoft Entra ID con le credenziali di Amministrazione istrator globale o identità ibrida Amministrazione:

    Screenshot che mostra la richiesta di accesso nella finestra di dialogo Active Microsoft Entra Connessione.

  3. Selezionare la casella modalità di gestione temporanea e fare clic su Avanti:

    Screenshot che mostra la configurazione della modalità di gestione temporanea nella finestra di dialogo Active Microsoft Entra Connessione.

  4. Il server Microsoft Entra Connessione verificherà la presenza di componenti installati e chiederà di avviare il processo di sincronizzazione al termine della modifica della configurazione:

    Screenshot che mostra la schermata Pronto per la configurazione nella finestra di dialogo Active Microsoft Entra Connessione.

Poiché il server sarà in modalità di gestione temporanea, non scriverà le modifiche apportate all'ID Microsoft Entra, ma manterrà le modifiche apportate ad AD nel relativo spazio Connessione or, pronto per scriverle.
È consigliabile lasciare attivo il processo di sincronizzazione per il server in modalità di gestione temporanea, quindi, se diventa attivo, assumerà rapidamente il controllo e non dovrà eseguire una sincronizzazione di grandi dimensioni per recuperare lo stato corrente degli oggetti Active Directory/Microsoft Entra nell'ambito.

  1. Dopo aver selezionato per avviare il processo di sincronizzazione e fare clic su Configura, il server Connessione Microsoft Entra verrà configurato in modalità di gestione temporanea.
    Al termine, verrà visualizzata una schermata che conferma che la modalità di gestione temporanea è abilitata.
    È possibile fare clic su Esci per terminare.

  2. È possibile verificare che il server sia in modalità di gestione temporanea aprendo Windows PowerShell, caricare il modulo "ADSync" e verificare la configurazione dell'utilità di pianificazione ADSync usando i comandi seguenti:

Import-Module ADSync
Get-ADSyncScheduler

Dai risultati verificare il valore dell'impostazione "StagingModeEnabled". Se il server è stato impostato correttamente sulla modalità di gestione temporanea, il valore di questa impostazione deve essere True come nell'esempio seguente:

Screenshot che mostra la console del servizio di sincronizzazione nella finestra di dialogo Active Microsoft Entra Connessione.

Modificare il server di sincronizzazione temporanea corrente in modalità attiva

A questo punto, tutti i server di sincronizzazione di Microsoft Entra Connessione devono essere in modalità di gestione temporanea e non esportare le modifiche. È ora possibile spostare il server di sincronizzazione temporanea in modalità attiva e sincronizzare attivamente le modifiche.

  1. Passare ora al server microsoft Entra Connessione originariamente in modalità di gestione temporanea e aprire la procedura guidata di Microsoft Entra Connessione.

    Fare clic su "Configura modalità di gestione temporanea" e fare clic su Avanti:

    Screenshot che mostra la modalità di gestione temporanea evidenziata nella finestra di dialogo Staging Microsoft Entra Connessione.

    Il messaggio nella parte inferiore della procedura guidata indica che il server è in modalità di gestione temporanea.

  2. Accedere a Microsoft Entra ID e quindi passare alla schermata Modalità di gestione temporanea.

    Rimuovere la casella per la modalità di gestione temporanea e fare clic su Avanti

    Screenshot che mostra la configurazione della modalità di gestione temporanea nella finestra di dialogo Staging Microsoft Entra Connessione.

    In base all'avviso in questa pagina, è importante assicurarsi che nessun altro server Microsoft Entra Connessione sia attivamente sincronizzato.

    Deve essere presente un solo server di sincronizzazione Microsoft Entra Connessione attivo in qualsiasi momento.

  3. Quando viene richiesto di avviare il processo di sincronizzazione, selezionare questa casella e fare clic su Configura:

    Screenshot che mostra la schermata Ready to Configure nella finestra di dialogo Staging Microsoft Entra Connessione.

  4. Al termine del processo, verrà visualizzata la schermata di conferma seguente in cui è possibile fare clic su Esci per terminare:

    Screenshot che mostra la schermata Conferma nella finestra di dialogo Staging Microsoft Entra Connessione.

  5. È possibile verificare che funzioni aprendo la Console del servizio di sincronizzazione e verificando se i processi di esportazione sono in esecuzione:

    Screenshot che mostra la console del servizio di sincronizzazione nella finestra di dialogo Staging di Microsoft Entra Connessione.

Ripristino di emergenza

Nell'ambito della progettazione dell'implementazione vengono pianificate le operazioni da eseguire nel caso di un'emergenza che causa la perdita del server di sincronizzazione. Ci sono diversi modelli da usare e quello scelto dipende da diversi fattori, ad esempio:

  • Qual è la tolleranza per non essere in grado di apportare modifiche agli oggetti in Microsoft Entra ID durante il tempo di inattività?
  • Se si usa la sincronizzazione delle password, gli utenti accettano di dover usare la vecchia password in Microsoft Entra ID nel caso la modifichino in locale?
  • Si ha una dipendenza dalle operazioni in tempo reale, ad esempio il writeback delle password?

A seconda delle risposte a queste domande e dei criteri dell'organizzazione, è possibile implementare una delle strategie seguenti:

  • Ricompilare quando necessario.
  • Avere un server di standby di riserva, ovvero in modalità di gestione temporanea.
  • Usare macchine virtuali.

Se non si usa il database di SQL Express predefinito, è opportuno vedere anche la sezione Disponibilità elevata di SQL .

Ricompilare quando necessario

Una strategia valida consiste nel pianificare la ricompilazione di un server in caso di necessità. L'installazione del motore di sincronizzazione e l'esecuzione dell'importazione iniziale e della sincronizzazione possono essere generalmente completate in poche ore. Se non è disponibile un server di riserva, è possibile usare temporaneamente un controller di dominio per ospitare il motore di sincronizzazione.

Il server del motore di sincronizzazione non archivia alcuno stato sugli oggetti in modo che il database possa essere ricompilato dai dati in Active Directory e microsoft Entra ID. L'attributo sourceAnchor viene usato per aggiungere gli oggetti sia locali che dal cloud. Se si ricompila il server con gli oggetti esistenti in locale e nel cloud, il motore di sincronizzazione abbinerà di nuovo questi oggetti al momento della reinstallazione. Gli elementi che occorre documentare e salvare sono le modifiche della configurazione apportate al server, ad esempio le regole di filtro e sincronizzazione. Queste configurazioni personalizzate dovranno essere riapplicate prima di avviare la sincronizzazione.

Avere un server di standby di riserva, in modalità di gestione temporanea

Nel caso di un ambiente più complesso, è consigliabile avere uno o più server di standby. Durante l'installazione è possibile abilitare un server in modalità di gestione temporanea.

Per altre informazioni, vedere le modalità di gestione temporanea.

Usare macchine virtuali

Un metodo comune e supportato consiste nell'eseguire il motore di sincronizzazione in una macchina virtuale. Nel caso di un problema dell'host, è possibile eseguire la migrazione dell'immagine del server del motore di sincronizzazione in un altro server.

Disponibilità elevata di SQL

Se non si usa SQL Server Express fornito con Microsoft Entra Connessione, è necessario considerare anche la disponibilità elevata per SQL Server. Le soluzioni a disponibilità elevata supportate includono il clustering di SQL e AOA (Gruppi di disponibilità Always On), mentre il mirroring è una delle soluzioni non supportate.

Il supporto per SQL AOA è stato aggiunto a Microsoft Entra Connessione nella versione 1.1.524.0. È necessario abilitare SQL AOA prima di installare Microsoft Entra Connessione. Durante l'installazione, Microsoft Entra Connessione rileva se l'istanza di SQL fornita è abilitata per SQL AOA o meno. Se SQL AOA è abilitato, Microsoft Entra Connessione determinare ulteriormente se SQL AOA è configurato per l'uso della replica sincrona o della replica asincrona. Quando si configura il listener del gruppo di disponibilità, la proprietà RegisterAllProvidersIP deve essere impostata su 0. Questo perché Microsoft Entra Connessione attualmente usa SQL Native Client per connettersi a SQL e SQL Native Client non supporta l'uso della proprietà MultiSubNetFailover.

Appendice CSAnalyzer

Vedere la sezione Verificare su come usare questo script.

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
}

Passaggi successivi

Argomenti generali