Concepts

Processus de synchronisation

Dans Microsoft 365, la gestion des identités des utilisateurs dans les environnements sur site et cloud est cruciale pour un accès et une administration transparents. L'un des concepts clés de cette gestion hybride des identités est ImmutableID.

L'ImmutableID est un identifiant unique et immuable qui relie un utilisateur Active Directory sur site à son homologue Microsoft Entra ID (anciennement Azure AD). Cette immuabilité garantit une correspondance cohérente des identités, même si d'autres attributs de l'utilisateur changent.

Microssoft Entra Connect Sync (ex Azure AD Connect) synchronise les annuaires sur site (on-oremises) avec Microsoft Entra ID, en utilisant l'ImmutableID pour faire correspondre avec précision les utilisateurs entre les environnements. Cela permet d'éviter les doublons et de maintenir des identités cohérentes, garantissant ainsi une expérience de gestion des identités hybrides transparente.

Le diagramme illustre le processus de synchronisation des identités des utilisateurs entre un Active Directory (AD) sur site et Microsoft Entra ID/Microsoft 365 à l'aide de Microsoft Entra Connect Sync.

Dans Active Directory:

  • mS-DS-ConsistencyGuid : Cet attribut correspond généralement à l’objectGUID de l’objet utilisateur. L’attribut AD ms-DS-ConsistencyGuid est renseigné par Entra Connect Sync lors du cycle de synchronisation suivant la création de l’objet. Toutefois, dans certains cas, notamment après une migration inter-forêts, le mS-DS-ConsistencyGuid peut contenir l’objectGUID provenant de la forêt d’origine. Cela garantit la cohérence et la conformité même après la migration.

Dans Microsoft Entra Connect Sync Metaverse (SQL Express or SQL Database):

  • sourceAnchor = base64(mS-DS-ConsistencyGuid) : Lors de la synchronisation, Microsoft Entra Connect Sync convertit le mS-DS-ConsistencyGuid en une chaîne encodée en base64. Cette chaîne est connue sous le nom de sourceAnchor.

Dans Microsoft Entra ID / Microsoft 365:

  • ImmutableID = sourceAnchor : sourceAnchor est ensuite utilisé comme ImmutableID dans Microsoft Entra ID/Microsoft 365. Cet ImmutableID est un identifiant permanent et immuable qui garantit que l'identité de l'utilisateur reste cohérente dans les environnements sur site et dans le nuage.

Pour voir l'ImmutableID d'un utilisateur dans Microsoft 365 (modifier -UserId xxx):

Get-MgUgser -UserId xxx -Property UserPrincipalName, Id, OnPremisesImmutableId | Select-Object UserPrincipalName, Id, OnPremisesImmutableId

Processus de synchronisation avec Entra Cloud Sync

Dans Entra Cloud Sync, la valeur de OnPremisesImmutableId dans le cloud est dérivée directement de l’attribut objectGUID du compte utilisateur local. Comme il n’y a pas de métaverse ni de base de données locale (contrairement à Entra Connect Sync), le service convertit simplement le objectGUID de l’Active Directory en une valeur encodée, puis l’écrit dans OnPremisesImmutableId sur l’objet correspondant dans le cloud. Cela permet d’assurer le lien unique entre l’objet local et celui d’Entra ID sans infrastructure de synchronisation complexe.

Voir attribut Immutable ID

Soit dans Microsoft Entra ID, sur la fiche de l'objet utilisateur, partie On-premises.

Soit via PowerShell avec le module Microsofr.Graph.Users

Get-MgUgser -UserId xxx -Property UserPrincipalName, Id, OnPremisesImmutableId | Select-Object UserPrincipalName, Id, OnPremisesImmutableId

Convertir un utilisateur synchronisé en utilisateur cloud uniquement dans Microsoft 365

Cette procédure a été validée avec la version 2.20.0 de Microsoft.Graph. L’étape 5 peut se comporter différemment avec des versions antérieures ou ultérieures. Sauf exception, la majorité des étapes s'appliquent autant à Entra Connect Sync et Entra Cloud Sync.

Comme indiqué précédemment l'immutableID est ce qui permet de faire le lien entre un objet AD et un objet cloud. Comme son nom l'indique, ce lien est normalement immuable (=ne peut pas être changé). Cependant, il peut exister des cas où on souhaite convertir un utilisateur synchronisé en utilisateur cloud uniquement. Il est donc nécessaire de casser ce lien, ce qui veut dire supprimer cet immutableID dans le cloud.

  1. Exclure l'objet AD de la synchronisation. Il existe plusieurs méthode
    1. Soit déplacer l'objet l'objet utilisateur vers une unité d'organisation (OU) non synchronisée.
    2. [seulement pour Entra Connect Sync] Soit définir l’attribut adminDescription à la valeur User_. Certains sites recommandent d'utiliser la valeur User_DoNotSync, mais toute valeur débutant par User_ est techniquement valider et déclenche une règle d’exclusion par défaut dans Entra Connect Sync. Attention avec cette méthode, car si vous souhaitez resynchroniser l'utilisateur par la suite, vous risquez de rencontrer des erreurs de type AttributeValueMustBeUnique, ce qui vous empêchera de relier l'utilisateur AD à l'utilisateur cloud et vous devrez faire un lien ImmutableID manuel. À utiliser uniquement si vous souhaitez convertir l'objet en cloud de façon définitive, sans possibilité de retour en arrière.
  2. Attendre la prochaine synchronisation : Laissez le temps à la prochaine synchronisation programmée de se produire. Pour Entra Connect Sync, vous pouvez déclencher manuellement la synchronisation à l'aide de la commande Start-ADSyncSyncCycle. Pour Entra Cloud Sync, vous devrez attendre la prochaine synchronisation, qui prend entre 10 et 20 minutes.
  3. Vérifier la suppression : Aller dans Microsoft Entra ID > Users > Deleted Users et vérifier que l'utilisateur est supprimé. Si vous préférez, vous pouvez utiliser Microsoft 365 admin > Deleted users
Vérifier la suppression de l'utilisateur
  1. Restaurer l'utilisateur dans Microsoft Entra ID : Aller sur l'utilisateur supprimé dans Microsoft Entra ID (ou Microsoft 365 Admin Center), cliquer sur l'utilisateur et sélectionner Restaurer.
  1. Convertir l'utilisateur : utiliser PowerShell et Microsoft Graph pour définir OnPremisesImmutableID = $null. Assurez-vous d'avoir installé au moins les modules Microsoft Graph suivants :Microsoft.Graph.Authentication et Microsoft.Graph.Users
Connect-MgGraph -Scopes 'User.ReadWrite.All'

# Fill with the user's UserPrincipalName 
$upn = '[email protected]'

Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/Users/$upn" -Body @{OnPremisesImmutableId = $null } -ErrorAction Stop
A noter que nous devons utiliser Invoke-MgGraphRequest parce que la CMDlet Update-MgUser ne supporte pas la valeur $null. Plus d'informations sur Github : https://github.com/microsoftgraph/msgraph-sdk-powershell/issues/852
  1. Votre utilisateur est maintenant cloud uniquement et n'a plus de lien avec le compte AD.

Attention : Si vous déplacez l'utilisateur AD vers une OU synchronisée, Entra Connect Sync recréera le lien et redéfinira l'ImmutableID.

Comments

banner-Bastien Perez
Bastien Perez's avatar

Freelance Microsoft 365 - Active Directory - Modern Workplace

France