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:
Preparação
- 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.
- 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
- 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.
- Selecione o Conector com o tipo Microsoft Entra ID (Microsoft). Clique em Executar, selecione Importação completa e OK.
- 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.
- 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 ID do Microsoft Entra 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
- Inicie um prompt cmd e vá para
%ProgramFiles%\Microsoft Azure AD Sync\bin
- 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. - 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. - 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:
- Copie o script do PowerShell da seção CSAnalyzer para um arquivo chamado
csanalyzer.ps1
. - Abra uma janela do PowerShell e navegue até a pasta onde você criou o script do PowerShell.
- Execução:
.\csanalyzer.ps1 -xmltoimport %temp%\export.xml
. - 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 envia ativamente as alterações para os objetos do AD sincronizados para o ID do Microsoft Entra e o servidor passivo prepara 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 severo 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 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.
- 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:
- Você precisará entrar no Microsoft Entra ID com credenciais de Administrador de Identidade Híbrida:
- Marque a caixa para Modo de preparo e clique em Avançar:
- O servidor Microsoft Entra Connect verifica se há componentes instalados e, em seguida, pergunta se você deseja iniciar o processo de sincronização quando a alteração de configuração for concluída:
Como o servidor está no modo de preparação, ele não gravará alterações no ID do Microsoft Entra, mas retém todas as 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.
Depois de selecionar para iniciar o processo de sincronização e clicar em Configurar, o servidor Microsoft Entra Connect é configurado no Modo de Preparo. Uma vez concluído, você será solicitado com uma tela que confirma que o Modo de Preparo está ativado. Você pode clicar em Sair para concluir.
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:
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.
- 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 mensagem na parte inferior do assistente indica que este servidor está no Modo de Preparo.
- 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.
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.
- Quando lhe for pedido para iniciar o processo de sincronização, marque esta caixa e clique em Configurar:
- 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:
- Você pode confirmar se esse processo está funcionando abrindo o Console de Serviço de Sincronização e verificando se os trabalhos de Exportação estão em execução:
Recuperação após desastre
Parte do design de implementação é planejar o que fazer no caso de haver um desastre em que você perca 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 usa o banco de dados interno do SQL Express, também deve 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 não estiver a utilizar o SQL Server Express que vem incluído no Microsoft Entra Connect, a elevada disponibilidade para o SQL Server deve também ser tida em conta. 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. 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