Microsoft Entra Connect: Servidor de preparo e recuperação de desastres

Com um servidor no modo de teste, pode fazer alterações à configuração e pré-visualizá-las antes de tornar o servidor ativo. Também lhe permite executar importações completas e sincronizações completas para verificar que todas as alterações são as previstas antes de as fazer no ambiente de produção.

Modo de teste

O modo de teste pode ser utilizado em vários cenários, incluindo:

  • Elevada disponibilidade.
  • Testar e implementar novas alterações à configuração.
  • Introduzir um servidor novo e descontinuar o antigo.

Durante a instalação, você pode selecionar o servidor para estar no modo de preparo. Essa ação torna o servidor ativo para importação e sincronização, mas não executa nenhuma exportação. Um servidor no modo de preparo não está executando sincronização de senha ou write-back de senha, mesmo que você tenha selecionado esses recursos durante a instalação. Quando você desabilita o modo de preparo, o servidor começa a exportar, habilita a sincronização de senha e habilita o write-back de senha.

Nota

Suponha que você tenha um Microsoft Entra Connect com o recurso de Sincronização de Hash de Senha habilitado. Quando você habilita o modo de preparo, o servidor para de sincronizar as alterações de senha do AD local. Quando você desabilita o modo de preparação, o servidor retoma a sincronização das alterações de senha de onde parou pela última vez. Se o servidor for deixado no modo de preparo por um longo período de tempo, pode levar algum tempo para o servidor sincronizar todas as alterações de senha que ocorreram durante o período de tempo.

Você ainda pode forçar uma exportação usando o gerenciador de serviço de sincronização.

Um servidor no modo de preparo continua a receber alterações do Ative Directory e do Microsoft Entra ID e pode assumir rapidamente as responsabilidades de outro servidor em caso de falha. Se você fizer alterações de configuração no servidor primário, é sua responsabilidade fazer as mesmas alterações no servidor no modo de preparação.

Para aqueles com conhecimento de tecnologias de sincronização mais antigas, o modo de preparo é diferente, pois o servidor tem seu próprio banco de dados SQL. Essa arquitetura permite que o servidor de modo de preparo esteja localizado em um datacenter diferente.

Verificar a configuração de um servidor

Para aplicar este método, siga estes passos:

  1. Preparação
  2. Configuração
  3. Importação e Sincronização
  4. Verificar
  5. Mudar o servidor ativo

Preparação

  1. Instale o Microsoft Entra Connect, selecione o modo de preparo e desmarque iniciar sincronização na última página do assistente de instalação. Esse modo permite que você execute o mecanismo de sincronização manualmente. A captura de tela mostra a página Pronto para configurar na caixa de diálogo Microsoft Entra Connect.
  2. Assinar/iniciar sessão e, no menu Iniciar, selecione Serviço de Sincronização.

Configuração

Se você fez alterações personalizadas no servidor primário e deseja comparar a configuração com o servidor de preparo, use o documentador de configuração do Microsoft Entra Connect.

Importação e Sincronização

  1. Selecione Conectores e selecione o primeiro Conector com o tipo Serviços de Domínio Ative Directory. Clique em Executar, selecione Importação completa e OK. Siga estas etapas para todos os conectores desse tipo.
  2. Selecione o Conector com o tipo Microsoft Entra ID (Microsoft). Clique em Executar, selecione Importação completa e OK.
  3. Verifique se a guia Conectores ainda está selecionada. Para cada Conector com o tipo Serviços de Domínio Ative Directory, clique em Executar, selecione Sincronização Delta e OK.
  4. Selecione o Conector com o tipo Microsoft Entra ID (Microsoft). Clique em Executar, selecione Sincronização Delta e OK.

Agora você preparou as alterações de exportação para o Microsoft Entra ID e o AD local (se estiver usando a implantação híbrida do Exchange). As próximas etapas permitem que você inspecione o que está prestes a mudar antes de realmente iniciar a exportação para os diretórios.

Verificar

  1. Inicie um prompt cmd e vá para %ProgramFiles%\Microsoft Azure AD Sync\bin
  2. Executar: csexport "Name of Connector" %temp%\export.xml /f:x O nome do Conector pode ser encontrado no Serviço de Sincronização. Tem um nome semelhante a "contoso.com – Microsoft Entra ID" para Microsoft Entra ID.
  3. Executar: CSExportAnalyzer %temp%\export.xml > %temp%\export.csv Você tem um arquivo em %temp% chamado export.csv que pode ser examinado no Microsoft Excel. Este ficheiro contém todas as alterações que estão prestes a ser exportadas.
  4. Faça as alterações necessárias nos dados ou na configuração e execute essas etapas novamente (Importar, Sincronizar e Verificar) até que as alterações que estão prestes a ser exportadas sejam esperadas.

Noções básicas sobre o arquivo export.csv

A maior parte do ficheiro é autoexplicativa. Algumas abreviaturas para entender o conteúdo:

  • OMODT – Tipo de Modificação de Objeto. Indica se a operação em um nível de objeto é um Adicionar, Atualizar ou Excluir.
  • AMODT – Tipo de modificação de atributo. Indica se a operação em um nível de atributo é um Adicionar, Atualizar ou excluir.

Recuperar identificadores comuns

O arquivo export.csv contém todas as alterações que estão prestes a ser exportadas. Cada linha corresponde a uma alteração para um objeto no espaço do conector e o objeto é identificado pelo atributo DN. O atributo DN é um identificador exclusivo atribuído a um objeto no espaço do conector. Quando você tem muitas linhas/alterações no export.csv para analisar, pode ser difícil descobrir para quais objetos as alterações são baseadas apenas no atributo DN. Para simplificar o processo de análise das alterações, use o csanalyzer.ps1 script do PowerShell. O script recupera identificadores comuns (por exemplo, displayName, userPrincipalName) dos objetos. Para usar o script:

  1. Copie o script do PowerShell da seção CSAnalyzer para um arquivo chamado csanalyzer.ps1.
  2. Abra uma janela do PowerShell e navegue até a pasta onde você criou o script do PowerShell.
  3. Execução: .\csanalyzer.ps1 -xmltoimport %temp%\export.xml.
  4. Agora você tem um arquivo chamado processedusers1.csv que pode ser examinado no Microsoft Excel. Observe que o arquivo fornece um mapeamento do atributo DN para identificadores comuns (por exemplo, displayName e userPrincipalName). Atualmente, ele não inclui as alterações de atributos reais que estão prestes a ser exportadas.

Mudar o servidor ativo

O Microsoft Entra Connect pode ser configurado em uma configuração de Alta Disponibilidade Ativo-Passivo, onde um servidor enviará ativamente as alterações para os objetos AD sincronizados para o ID do Microsoft Entra e o servidor passivo preparará essas alterações caso precise assumir o controle.

Nota

Não é possível configurar o Microsoft Entra Connect numa configuração Active-Active. Deve ser Ativo-Passivo. Certifique-se de que apenas 1 servidor Microsoft Entra Connect esteja sincronizando ativamente as alterações.

Para obter mais informações sobre como configurar um servidor de sincronização do Microsoft Entra Connect no modo de preparo, consulte modo de preparo

Talvez seja necessário executar um failover dos Servidores de Sincronização por vários motivos, como atualizar a versão do Microsoft Entra Connect ou receber um alerta de que o serviço de integridade do Serviço de Sincronização não está recebendo informações atualizadas. Nesses eventos, você pode tentar um failover dos Servidores de Sincronização seguindo as etapas abaixo.

Importante

Alternar um servidor de preparo para o modo ativo pode ter um impacto grave na sincronização, se as seguintes condições não forem atendidas. Como precaução, execute sempre um ciclo de sincronização inicial e verifique as exportações pendentes, antes de efetuar esta operação.

Pré-requisitos

  • Um Microsoft Entra Connect Sync Server atualmente ativo
  • Um servidor de sincronização Microsoft Entra Connect de preparação
  • O servidor de preparo tem o agendador de sincronização habilitado e foi sincronizado com o Microsoft Entra ID recentemente
  • No caso de atualizações nas regras de sincronização ou no escopo da sincronização, execute um ciclo de sincronização inicial
  • Confirme se o Microsoft Entra Connect Sync Server está configurado para evitar exclusões acidentais
  • Verifique as exportações pendentes e confirme se não há atualizações significativas, e essas atualizações são esperadas
  • Verifique se o agente Microsoft Entra Connect Health está atualizado verificando o servidor no portal Microsoft Entra Connect Health
  • Alterne o servidor ativo atual para o modo de preparo, antes de alternar o servidor de preparo para ativo

Alterar o Ative Sync Server atualmente para o modo de preparo

Precisamos garantir que apenas um servidor de sincronização esteja sincronizando as alterações a qualquer momento ao longo desse processo. Se o Servidor de Sincronização atualmente ativo estiver acessível, você poderá executar as etapas abaixo para movê-lo para o Modo de Preparo. Se não estiver acessível, certifique-se de que o servidor ou a VM não recupere o acesso inesperadamente, desligando o servidor ou isolando-o das conexões de saída.

  1. Para o servidor Microsoft Entra Connect atualmente ativo, abra o assistente do Microsoft Entra Connect e clique em "Configurar modo de preparação" e, em seguida, em Avançar:

    A captura de tela mostra o Modo de Preparo realçado na caixa de diálogo Ative Microsoft Entra Connect.

  2. Você precisará entrar no Microsoft Entra ID com credenciais de Administrador Global ou Administrador de Identidade Híbrida:

    A captura de tela mostra o prompt Entrar na caixa de diálogo Ative Microsoft Entra Connect.

  3. Marque a caixa para Modo de preparo e clique em Avançar:

    A captura de tela mostra a configuração do Modo de Preparo na caixa de diálogo Ative Microsoft Entra Connect.

  4. O servidor Microsoft Entra Connect verificará se há componentes instalados e, em seguida, perguntará se você deseja iniciar o processo de sincronização quando a alteração de configuração for concluída:

    A captura de tela mostra a tela Pronto para configurar na caixa de diálogo Ative Microsoft Entra Connect.

Como o servidor estará no modo de preparação, ele não gravará alterações no ID do Microsoft Entra, mas manterá quaisquer alterações no AD em seu Espaço de Conector, pronto para gravá-las.
Recomenda-se deixar o processo de sincronização ligado para o servidor no Modo de Preparo, portanto, se ele se tornar ativo, ele assumirá rapidamente o controle e não terá que fazer uma grande sincronização para alcançar o estado atual dos objetos do Ative Directory / Microsoft Entra no escopo.

  1. Depois de selecionar para iniciar o processo de sincronização e clicar em Configurar, o servidor Microsoft Entra Connect será configurado no Modo de Preparo.
    Quando isso for concluído, você será solicitado com uma tela que confirma que o Modo de Preparo está ativado.
    Você pode clicar em Sair para concluir.

  2. Você pode confirmar se o servidor está com êxito no Modo de Preparo abrindo o Windows PowerShell, carregar o módulo "ADSync" e verificar a configuração do Agendador ADSync, usando os seguintes comandos:

Import-Module ADSync
Get-ADSyncScheduler

A partir dos resultados, verifique o valor da configuração "StagingModeEnabled". Se o servidor foi alternado com êxito para o modo de preparo, o valor dessa configuração deve ser True , como no exemplo abaixo:

A captura de tela mostra o console do Serviço de Sincronização na caixa de diálogo Ative Microsoft Entra Connect.

Alterar o servidor de Sincronização de Preparo atual para o modo ativo

Neste ponto, todos os nossos Servidores de Sincronização do Microsoft Entra Connect devem estar no Modo de Preparo e não exportar alterações. Agora podemos mover nosso Servidor de Sincronização de Preparo para o modo Ativo e sincronizar ativamente as alterações.

  1. Agora vá para o servidor Microsoft Entra Connect que estava originalmente no Modo de Preparo e abra o assistente do Microsoft Entra Connect.

    Clique em "Configurar modo de preparação" e clique em Avançar:

    A captura de tela mostra o Modo de Preparo realçado na caixa de diálogo Preparo do Microsoft Entra Connect.

    A mensagem na parte inferior do assistente indica que este servidor está no Modo de Preparo.

  2. Inicie sessão no Microsoft Entra ID e, em seguida, aceda ao ecrã Modo de Preparo.

    Desmarque a caixa para Modo de Preparo e clique em Avançar

    A captura de tela mostra a configuração do Modo de Preparo na caixa de diálogo Preparo do Microsoft Entra Connect.

    De acordo com o aviso nesta página, é importante garantir que nenhum outro servidor Microsoft Entra Connect esteja sincronizando ativamente.

    Deve haver apenas um servidor Microsoft Entra Connect Sync ativo a qualquer momento.

  3. Quando lhe for pedido para iniciar o processo de sincronização, marque esta caixa e clique em Configurar:

    A captura de tela mostra a tela Pronto para configurar na caixa de diálogo Preparo do Microsoft Entra Connect.

  4. Uma vez que o processo está concluído, você deve obter a tela de confirmação abaixo, onde você pode clicar em Sair para concluir:

    A captura de tela mostra a tela Confirmação na caixa de diálogo Preparo do Microsoft Entra Connect.

  5. Você pode confirmar se isso está funcionando abrindo o Console do Serviço de Sincronização e verificando se os trabalhos de Exportação estão em execução:

    A captura de tela mostra o console do Serviço de Sincronização na caixa de diálogo Preparo do Microsoft Entra Connect.

Recuperação após desastre

Parte da conceção da implementação é planear o que fazer em caso de desastre, em que perde o servidor de sincronização. Podem ser utilizados vários modelos, sendo que o modelo a utilizar depende de vários fatores, entre os quais:

  • Qual é a sua tolerância para não poder fazer alterações em objetos no Microsoft Entra ID durante o tempo de inatividade?
  • Se utilizar a sincronização de palavras-passe, os utilizadores aceitam que têm de utilizar a palavra-passe antiga no Microsoft Entra ID no caso de a alterarem no ambiente no local?
  • Depende de operações em tempo real, como repetição de escrita de palavras-passe?

Dependendo das respostas a essas perguntas e da política da sua organização, uma das seguintes estratégias pode ser implementada:

  • Reconstrua quando necessário.
  • Tenha um servidor de espera sobressalente, conhecido como modo de preparação.
  • Use máquinas virtuais.

Se você não usar o banco de dados interno do SQL Express, também deverá examinar a seção Alta Disponibilidade do SQL.

Recriar quando necessário

Uma estratégia viável é planejar uma reconstrução do servidor quando necessário. Normalmente, a instalação do mecanismo de sincronização e fazer a importação inicial e a sincronização podem ser concluídas em poucas horas. Se não houver um servidor sobressalente disponível, é possível usar temporariamente um controlador de domínio para hospedar o mecanismo de sincronização.

O servidor do mecanismo de sincronização não armazena nenhum estado sobre os objetos para que o banco de dados possa ser reconstruído a partir dos dados no Ative Directory e no Microsoft Entra ID. O atributo sourceAnchor é usado para unir os objetos do local e da nuvem. Se você reconstruir o servidor com objetos existentes no local e na nuvem, o mecanismo de sincronização fará a correspondência desses objetos novamente na reinstalação. As coisas que você precisa documentar e salvar são as alterações de configuração feitas no servidor, como regras de filtragem e sincronização. Essas configurações personalizadas devem ser reaplicadas antes de iniciar a sincronização.

Ter um servidor de espera sobressalente - modo de preparo

Se você tiver um ambiente mais complexo, recomenda-se ter um ou mais servidores em espera. Durante a instalação, você pode habilitar um servidor para estar no modo de preparação.

Para obter mais informações, consulte Modo de preparação.

Utilizar máquinas virtuais

Um método comum e suportado é executar o mecanismo de sincronização em uma máquina virtual. Caso o host tenha um problema, a imagem com o servidor do mecanismo de sincronização pode ser migrada para outro servidor.

Alta disponibilidade do SQL

Se você não estiver usando o SQL Server Express que vem com o Microsoft Entra Connect, a alta disponibilidade para o SQL Server também deve ser considerada. As soluções de elevada disponibilidade suportadas incluem clustering de SQL e AOA (Grupos de Disponibilidade AlwaysOn). As soluções não suportadas incluem espelhamento.

Suporte para SQL AOA foi adicionado ao Microsoft Entra Connect na versão 1.1.524.0. Você deve habilitar o SQL AOA antes de instalar o Microsoft Entra Connect. Durante a instalação, o Microsoft Entra Connect deteta se a instância SQL fornecida está habilitada para SQL AOA ou não. Se o SQL AOA estiver habilitado, o Microsoft Entra Connect descobrirá ainda mais se o SQL AOA está configurado para usar replicação síncrona ou replicação assíncrona. Ao configurar o Listener do Grupo de Disponibilidade, a propriedade RegisterAllProvidersIP deve ser definida como 0. Isso ocorre porque o Microsoft Entra Connect atualmente usa o SQL Native Client para se conectar ao SQL e o SQL Native Client não oferece suporte ao uso da propriedade MultiSubNetFailover.

Apêndice CSAnalyzer

Consulte a seção verificar como usar esse 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
}

Próximos passos

Tópicos de visão geral