Microsoft Entra Connect : serveur de préproduction et reprise d’activité après sinistre

Avec un serveur en mode intermédiaire, vous pouvez apporter des modifications à la configuration et visualiser les modifications avant de rendre le serveur actif. Il permet également d’exécuter une importation et la synchronisation complètes afin de vérifier que toutes les modifications sont attendues avant de les appliquer dans un environnement de production.

Mode intermédiaire

Le mode intermédiaire peut être utilisé dans le cadre de plusieurs scénarios, notamment :

  • Haute disponibilité :
  • Tester et déployer de nouvelles modifications de configuration.
  • Introduire un nouveau serveur et retirer l’ancien.

Lors de l’installation, vous pouvez sélectionner le serveur en mode intermédiaire. Cette action rend le serveur actif pour l’importation et la synchronisation, mais n’exécute aucune exportation. Un serveur en mode intermédiaire n’exécute pas la synchronisation de mot de passe et l’écriture différée de mot de passe même si vous avez sélectionné ces fonctions au cours de l’installation. Lorsque vous désactivez le mode intermédiaire, le serveur lance l’exportation et active la synchronisation de mot de passe et l’écriture différée de mot de passe.

Remarque

Supposons que vous avez activé la fonctionnalité Synchronisation de hachage du mot de passe dans Microsoft Entra Connect. Lorsque vous activez le mode de préproduction, le serveur interrompt la synchroniser des modifications du mot de passe à partir de l'instance AD sur site. Lorsque vous désactivez le mode de préproduction, le serveur reprend la synchronisation des modifications du mot de passe à partir du point où il s'est arrêté. Si le serveur reste en mode de préproduction pendant une période prolongée, il risque de mettre un certain temps pour synchroniser toutes les modifications de mot de passe survenues dans l'intervalle.

Vous pouvez toujours forcer une exportation en utilisant le gestionnaire de services de synchronisation.

Un serveur en mode de préproduction continue de recevoir des modifications d’Active Directory et de Microsoft Entra ID et peut très rapidement reprendre les responsabilités d’un autre serveur en cas de défaillance. Si vous apportez des modifications de configuration à votre serveur principal, la responsabilité d’apporter les mêmes modifications au serveur en mode intermédiaire vous incombe.

Pour ceux qui connaissant les technologies de synchronisation plus anciennes, le mode intermédiaire est différent, dans la mesure où le serveur a sa propre base de données SQL. Cette architecture permet au serveur en mode intermédiaire d’être situé dans un autre centre de données.

Vérifiez la configuration d’un serveur

Pour appliquer cette méthode, procédez comme suit :

  1. Préparation
  2. Configuration
  3. Importer et synchroniser
  4. Vérifier
  5. Changer de serveur actif

Préparation

  1. Installez Microsoft Entra Connect, sélectionnez mode de préproduction, puis désélectionnez démarrer la synchronisation sur la dernière page de l’Assistant d’installation. Ce mode vous permet d’exécuter manuellement le moteur de synchronisation. Capture d’écran qui montre la page Prêt à configurer dans la boîte de dialogue Microsoft Entra Connect.
  2. Déconnectez-vous puis connectez-vous de nouveau et, dans le menu Démarrer, sélectionnez Service de synchronisation.

Configuration

Si vous avez apporté des modifications personnalisées au serveur principal et que vous souhaitez comparer la configuration avec le serveur de préproduction, utilisez la Documentation de configuration de Microsoft Entra Connect.

Importer et synchroniser

  1. Sélectionnez Connecteurs, puis sélectionnez le premier connecteur de type Services de domaine Active Directory. Cliquez sur Exécuter, sélectionnez Importation intégrale, puis OK. Répétez cette procédure pour tous les connecteurs de ce type.
  2. Sélectionnez le connecteur de type Microsoft Entra ID (Microsoft). Cliquez sur Exécuter, sélectionnez Importation intégrale, puis OK.
  3. Vérifiez que l’onglet Connecteurs est toujours sélectionné. Pour chaque connecteur de type Services de domaine Active Directory, cliquez sur Exécuter, sélectionnez Synchronisation Delta, puis OK.
  4. Sélectionnez le connecteur de type Microsoft Entra ID (Microsoft). Cliquez sur Exécuter, sélectionnez Synchronisation Delta, puis OK.

Vous avez maintenant effectué une exportation intermédiaire vers Microsoft Entra ID et AD local (si vous utilisez un déploiement Exchange hybride). Les prochaines étapes vous permettront d’inspecter les changements avant de commencer effectivement l’exportation vers les répertoires.

Vérifier

  1. Démarrez une invite de commande et accédez à %ProgramFiles%\Microsoft Azure AD Sync\bin
  2. Exécutez : csexport "Name of Connector" %temp%\export.xml /f:x le nom du connecteur se trouve dans le service de synchronisation. Il a un nom similaire à « contoso.com : Microsoft Entra ID » pour Microsoft Entra ID.
  3. Exécutez : CSExportAnalyzer %temp%\export.xml > %temp%\export.csv Vous disposez d’un fichier dans %temp% nommé export.csv qui peut être examiné dans Microsoft Excel. Ce fichier contient toutes les modifications sur le point d’être exportées.
  4. Apportez les modifications nécessaires aux données ou à la configuration et réexécutez ces opérations (importer, synchroniser et vérifier) jusqu’à ce que les modifications sur le point d’être exportées soient attendues.

Connaître le fichier export.csv

La majeure partie du fichier est explicite. Certaines abréviations permettant de comprendre le contenu :

  • OMODT – Type de modification d’objet. Indique si l’opération au niveau de l’objet est un ajout, une mise à jour ou une suppression.
  • AMODT – Type de modification d’attribut. Indique si l’opération au niveau de l’attribut est un ajout, une mise à jour ou une suppression.

Récupérer les identificateurs courants

Le fichier export.csv contient toutes les modifications sur le point d’être exportées. Chaque ligne correspond à une modification d’un objet dans l’espace connecteur, objet qui est identifié par l’attribut de nom unique (DN). L’attribut DN est un identificateur unique assigné à un objet dans l’espace connecteur. Quand le fichier export.csv à analyser contient de nombreuses lignes/modifications, il peut s’avérer difficile de déterminer quels objets sont concernés par les modifications à l’aide uniquement de l’attribut DN. Pour simplifier le processus d’analyse des modifications, utilisez le script PowerShell csanalyzer.ps1. Le script récupère les identificateurs courants (par exemple, displayName, userPrincipalName) des objets. Pour utiliser le script :

  1. Copiez le script PowerShell à partir de la section CSAnalyzer dans un fichier nommé csanalyzer.ps1.
  2. Ouvrez une fenêtre PowerShell et accédez au dossier où vous avez créé le script PowerShell.
  3. Exécutez : .\csanalyzer.ps1 -xmltoimport %temp%\export.xml.
  4. Vous disposez maintenant d’un fichier nommé processedusers1.csv qui peut être examiné dans Microsoft Excel. Notez que le fichier fournit un mappage de l’attribut DN aux identificateurs courants (par exemple, displayName et userPrincipalName). Cela n’inclut pas les modifications d’attribut réelles qui sont sur le point d’être exportées.

Changer de serveur actif

Microsoft Entra Connect peut être configuré dans une configuration de haute disponibilité active-passive, où un serveur envoie activement des modifications aux objets AD synchronisés vers Microsoft Entra ID et le serveur passif effectue la migration de ces modifications dans l’événement dont il doit prendre le contrôle.

Remarque

Vous ne pouvez pas configurer Microsoft Entra Connect dans une configuration active-active. Elle doit être active-passive. Vérifiez qu’un seul serveur Microsoft Entra Connect synchronise activement les modifications.

Pour plus d’informations sur la configuration d’un serveur Microsoft Entra Connect Sync en mode de préproduction, consultez mode de préproduction

Vous devrez peut-être effectuer un basculement des serveurs de synchronisation pour plusieurs raisons, telles que la mise à niveau de la version de Microsoft Entra Connect ou la réception d’une alerte indiquant que le service d’intégrité du service de synchronisation ne reçoit pas d’informations à jour. Dans ces événements, vous pouvez tenter un basculement des serveurs de synchronisation en suivant les étapes ci-dessous.

Important

Le basculement d’un serveur de test en mode actif peut avoir un impact grave dans la synchronisation, si les conditions suivantes ne sont pas remplies. Par précaution, exécutez toujours un cycle de synchronisation initial et vérifiez les exportations en attente avant d’effectuer cette opération.

Prérequis

  • Un serveur Microsoft Entra Connect Sync actuellement actif
  • Un serveur Microsoft Entra Connect Sync de préproduction
  • Le serveur de test dispose du planificateur de synchronisation activé et s’est synchronisé récemment avec Microsoft Entra ID
  • En cas de mises à jour des règles de synchronisation ou de l’étendue de synchronisation, exécutez un cycle de synchronisation initial
  • Vérifiez que votre serveur Microsoft Entra Connect Sync est configuré pour empêcher les suppressions accidentelles
  • Vérifiez les exportations en attente et confirmez qu’il n’y a pas de mises à jour significatives, et si de telles mises à jour sont attendues
  • Vérifier si l’agent Microsoft Entra Connect Health est mis à jour en examinant le serveur dans le portail Microsoft Entra Connect Health
  • Basculez le serveur actif en mode intermédiaire, avant d’activer le serveur intermédiaire

Changer le serveur de synchronisation actuellement actif en mode intermédiaire

Nous devons nous assurer qu’un seul serveur de synchronisation synchronise les modifications à tout moment tout au long de ce processus. Si le serveur de synchronisation actuellement actif est accessible, vous pouvez effectuer les étapes ci-dessous pour le passer en mode intermédiaire. S’il n’est pas accessible, assurez-vous que le serveur ou la machine virtuelle ne récupère pas l’accès de façon inattendue en arrêtant le serveur ou en l’isolant des connexions sortantes.

  1. Pour le serveur Microsoft Entra Connect actuellement actif, ouvrez l’Assistant Microsoft Entra Connect, puis cliquez sur « Configurer le mode de préproduction » et sur Suivant :

Capture d’écran montrant le mode de préproduction mis en surbrillance dans la boîte de dialogue Microsoft Entra Connect en mode actif.

  1. Vous devez vous connecter à Microsoft Entra ID avec des informations d’identification d’administrateur d’identité hybride :

Capture d’écran montrant l’invite de connexion dans la boîte de dialogue Microsoft Entra Connect active.

  1. Cochez la case pour le mode intermédiaire, puis cliquez sur Suivant :

Capture d’écran montrant la configuration du mode de préproduction dans la boîte de dialogue Microsoft Entra Connect active.

  1. Le serveur Microsoft Entra Connect vérifie les composants installés, puis vous demande si vous souhaitez démarrer le processus de synchronisation lorsque la modification de la configuration est terminée :

Capture d’écran qui montre l’écran Prêt à configurer dans la boîte de dialogue Microsoft Entra Connect active.

Étant donné que le serveur est en mode intermédiaire, il n’écrit pas de modifications dans Microsoft Entra ID, mais conserve les modifications apportées à AD dans l'espace de son connecteur, prêt à les écrire. Il est recommandé de laisser le processus de synchronisation activé pour le serveur en mode intermédiaire. Par conséquent, s’il devient actif, il va rapidement prendre le relais et ne va pas avoir à effectuer une grande synchronisation pour rattraper l’état actuel des objets Active Directory / Microsoft Entra à traiter.

  1. Après avoir sélectionné le démarrage du processus de synchronisation et cliqué sur Configurer, le serveur Microsoft Entra Connect se configure en mode intermédiaire. Une fois cette opération terminée, vous serez invité par un écran qui confirme que le mode intermédiaire est activé. Vous pouvez cliquer sur Quitter pour terminer.

  2. Vous pouvez vérifier que le serveur est bien en mode intermédiaire en ouvrant Windows PowerShell. Chargez le module ADSync et vérifiez la configuration d’ADSync Scheduler, à l’aide des commandes suivantes :

Import-Module ADSync
Get-ADSyncScheduler

À partir des résultats, vérifiez la valeur du paramètre StagingModeEnabled. Si le serveur est bien passé en mode intermédiaire, la valeur de ce paramètre doit être True (Vrai) comme dans l’exemple ci-dessous :

Capture d’écran montrant la console du service de synchronisation dans la boîte de dialogue Microsoft Entra Connect active.

Modifier le serveur de synchronisation intermédiaire actuel en mode actif

À ce stade, tous nos serveurs Microsoft Entra Connect Sync doivent être en mode de préproduction et ne pas exporter les modifications. Nous pouvons maintenant passer notre serveur de synchronisation intermédiaire en mode Actif et synchroniser activement les modifications.

  1. Accédez maintenant au serveur Microsoft Entra Connect qui était initialement en mode de préproduction et ouvrez l’Assistant Microsoft Entra Connect.

Cliquez sur « Configurer le mode intermédiaire » et cliquez sur Suivant :

Capture d’écran montrant le mode de préproduction mis en surbrillance dans la boîte de dialogue de préproduction de Microsoft Entra Connect.

Le message en bas de l’assistant indique que ce serveur est en mode intermédiaire.

  1. Connectez-vous à Microsoft Entra ID, puis accédez à l’écran Mode de préproduction.

Décochez la case pour le mode intermédiaire, puis cliquez sur Suivant.

Capture d’écran montrant la configuration du mode de préproduction dans la boîte de dialogue de préproduction de Microsoft Entra Connect.

Conformément à l’avertissement de cette page, il est important de s’assurer qu’aucun autre serveur Microsoft Entra Connect n’est en cours de synchronisation.

Il ne doit y avoir qu’un seul serveur Microsoft Entra Connect Sync actif à la fois.

  1. Lorsque vous êtes invité à démarrer le processus de synchronisation, cochez cette case et cliquez sur Configurer :

Capture d’écran qui montre l’écran Prêt à configurer dans la boîte de dialogue de préproduction de Microsoft Entra Connect.

  1. Une fois le processus terminé, vous devez obtenir l’écran de confirmation ci-dessous sur lequel vous pouvez cliquer sur Quitter pour terminer :

Capture d’écran qui montre l’écran Confirmation dans la boîte de dialogue de préproduction de Microsoft Entra Connect.

  1. Vous pouvez vérifier que ce processus fonctionne en ouvrant la console du service de synchronisation et en vérifiant si les tâches d’exportation sont en cours d’exécution :

Capture d’écran montrant la console du service de synchronisation dans la boîte de dialogue de préproduction de Microsoft Entra Connect.

Récupération d’urgence

Une partie de la conception de l’implémentation consiste à planifier les procédures à suivre si un sinistre occasionne la perte du serveur de synchronisation. Il existe différents modèles et le choix de celui que vous devez utiliser dépend de plusieurs facteurs, notamment :

  • Dans quelle mesure pouvez-vous tolérer de ne pas pouvoir apporter des modifications aux objets dans Microsoft Entra ID pendant les temps d’indisponibilité ?
  • Si vous utilisez la synchronisation de mot de passe, les utilisateurs acceptent-ils de devoir utiliser l’ancien mot de passe dans Microsoft Entra ID dans le cas où il serait modifié en local ?
  • Avez-vous une dépendance par rapport aux opérations en temps réel, notamment l’écriture différée de mot de passe ?

Selon les réponses à ces questions et la stratégie de votre organisation, une des stratégies suivantes peut être mise en œuvre :

  • Régénérer si nécessaire.
  • Disposer d'un serveur de secours en attente, appelé mode intermédiaire.
  • Utiliser les machines virtuelles.

Si vous n’utilisez pas la base de données SQL Express intégrée, vous devez vous reporter à la section Haute disponibilité SQL.

Régénérer lorsque nécessaire

Une stratégie viable consiste à planifier une régénération du serveur si nécessaire. Généralement, l’installation du moteur de synchronisation et l’exécution de l’importation et de la synchronisation initiales peuvent être effectuées en quelques heures. Si aucun serveur n’est libre, il est possible d’utiliser provisoirement un contrôleur de domaine pour héberger le moteur de synchronisation.

Le serveur de moteur de synchronisation ne stocke aucun état relatif aux objets, de sorte que la base de données peut être recréée à partir des données présentes dans Active Directory et Microsoft Entra ID. L’attribut sourceAnchor est utilisé pour associer les objets à partir du site et du cloud. Si vous régénérez le serveur avec les objets existants en local et sur le cloud, le moteur de synchronisation les remet en correspondance de nouveau au cours de la réinstallation. Vous devez documenter et enregistrer les modifications de configuration apportées au serveur, notamment aux règles de filtrage et de synchronisation. Ces configurations personnalisées doivent être réappliquées avant de commencer la synchronisation.

Disposer d’un serveur de secours en attente, connu sous le nom de mode intermédiaire.

Si vous disposez d’un environnement plus complexe, il est recommandé d’avoir un ou plusieurs serveurs de secours. Lors de l’installation, vous pouvez activer un serveur en mode intermédiaire.

Pour en savoir plus, voir Mode intermédiaire.

Utiliser les machines virtuelles

Une méthode courante et prise en charge consiste à exécuter le moteur de synchronisation sur une machine virtuelle. Si l’hôte rencontre un problème, l’image contenant le serveur de moteur de synchronisation peut être migrée vers un autre serveur.

Haute disponibilité SQL

Si vous n’utilisez pas SQL Server Express livré avec Microsoft Entra Connect, la haute disponibilité pour SQL Server doit alors être prise en compte. Les solutions de haute disponibilité prises en charge incluent la mise en clusters SQL et AOA (Groupes de disponibilité AlwaysOn). Les solutions non prises en charge incluent la mise en miroir.

La prise en charge de SQL AOA a été ajoutée à Microsoft Entra Connect version 1.1.524.0. Vous devez activer SQL AOA avant d’installer Microsoft Entra Connect. Pendant l’installation, Microsoft Entra Connect détecte si l’instance SQL spécifiée est activée ou non pour SQL AOA. Si SQL AOA est activé, Microsoft Entra Connect détermine si SQL AOA est configuré pour utiliser une réplication synchrone ou asynchrone. Lorsque vous configurez l’écouteur de groupe de disponibilité, la propriété RegisterAllProvidersIP doit être définie sur 0. Microsoft Entra Connect utilise actuellement SQL Native Client pour se connecter à SQL, et SQL Native Client ne prend pas en charge l’utilisation de la propriété MultiSubNetFailover.

Annexe CSAnalyzer

Consultez la section vérifier pour découvrir comment utiliser ce 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
}

Étapes suivantes

Rubriques de présentation