Vous disposez déjà d’utilisateurs créés dans Microsoft 365/Entra ID et de comptes équivalents dans un Active Directory on‑premises pour Exchange. Objectif : les fusionner proprement via Azure AD Connect afin d’offrir le SSO hybride sans doublons ni interruptions.
Contexte de l’opération
Lorsqu’un tenant Microsoft 365 est mis en service avant l’installation d’Azure AD Connect, les utilisateurs sont souvent provisionnés directement dans le cloud (création manuelle, CSV, ou Microsoft 365 Admin Center). Après quelques mois, l’entreprise décide d’étendre la synchronisation aux identités on‑prem : c’est là que survient le conflit ProxyAddresses SMTP:user@contoso.com already associated with another object
. Sans action de votre part, Azure AD Connect considérera les comptes locaux comme « nouveaux » et créera des doublons ou lèvera des erreurs de correspondance.
Pourquoi parle‑t‑on de soft‑match et de hard‑match ?
- Soft‑match (automatique) : Azure AD Connect associe deux enregistrements si l’UPN ou l’adresse SMTP principale est identique. Aucun script n’est requis, mais la fonctionnalité doit être activée côté service.
- Hard‑match (manuel) : lorsque le soft‑match échoue (doublons, adresses divergentes, historique complexe), on force l’association en injectant l’
ImmutableID
calculé depuis l’ObjectGUID
on‑prem dans le compte cloud existant.
Prérequis et bonnes pratiques 2025
- Installer Azure AD Connect v2.x (ou Migration vers Entra ID Connect lorsqu’il sera GA), afin de bénéficier de TLS 1.2, d’une base SQL LocalDB 2019 et de correctifs récents.
- Disposer d’un service account avec des droits § Replicating Directory Changes + § Read Permissions sur l’OU ciblée.
- Activer Azure AD Connect Health pour la visibilité des alertes (Duplicate Attributes, Synchronization Errors, etc.).
- Nettoyer les attributs : un seul
SMTP:
par utilisateur et pas d’adresse secondaire identique entre deux comptes. - Préférer désormais Microsoft Graph PowerShell (Mg) aux modules MSOnline/AzureAD, dépréciés.
Étapes détaillées de la fusion
Étape | Explication | Commandes / actions clés |
---|---|---|
1. Activer le soft‑match sur l’UPN | Permet à Azure AD Connect de détecter et d’unifier deux comptes possédant le même UPN ou la même adresse SMTP principale. | PowerShell Set-MsolDirSyncFeature -Feature EnableSoftMatchOnUpn -Enable $true Remarque : la cmdlet figure toujours dans MSOnline, mais elle n’est exécutée qu’une seule fois ; aucune tâche récurrente ne subsiste. |
2. Lancer une synchronisation de type Delta | Propage immédiatement la nouvelle configuration vers Entra ID sans attendre le cycle programmé (30 min par défaut). | Start-ADSyncSyncCycle -PolicyType Delta |
3. Éliminer les doublons proxyAddresses | Un soft‑match échoue si deux comptes portent exactement la même valeur (smtp:user@contoso.com ). | Dans AD, exécutez :Get-ADUser -Filter {proxyAddresses -like '*SMTP:user@contoso.com*'} ` -Properties proxyAddresses Supprimez l’entrée en trop et relancez Delta Sync. |
4. Appliquer un hard‑match ciblé | Pour un compte « récalcitrant » qui ne se fusionne toujours pas : calculez son ObjectGUID → ImmutableID → injectez‑le côté cloud. | # On‑prem $u = Get-ADUser -Identity "jdupont" -Properties ObjectGUID $id = [Convert]::ToBase64String($u.ObjectGUID.ToByteArray()) # Cloud Install-Module Microsoft.Graph -Scope CurrentUser Connect-MgGraph -Scopes User.ReadWrite.All Update-MgUser -UserId "[j.dupont@contoso.com](mailto:j.dupont@contoso.com)" -OnPremisesImmutableId \$id # Relance Start-ADSyncSyncCycle -PolicyType Delta |
5. Réinitialiser un mauvais jumelage | Si un ImmutableID erroné empêche la fusion, mettez‑le à $null ; dès le prochain cycle, le compte pourra être réassocié. | Update-MgUser -UserId "j.dupont@contoso.com" -OnPremisesImmutableId $null |
6. Sortir du module MSOnline | Planifiez la big bang : toutes vos automatisations (reporting, provisioning) doivent passer sur Microsoft Graph avant la fin de support annoncée. | Exemples de substitutions : Get-MsolUser → Get-MgUser -All Set-MsolUserPassword → Update-MgUser -PasswordProfile … |
Vérifications post‑fusion
Contrôle rapide via le Portail Entra ID
- Ouvrez Entra ID → Users → All users.
- Filtrez par
Source
et vérifiez que les comptes concernés sont désormais en Synchronised. - La colonne ImmutableID doit afficher une valeur Base64 (ou être vide si soft‑match).
Audit en PowerShell
Connect-MgGraph -Scopes Directory.Read.All
Get-MgUser -Filter "onPremisesImmutableId ne null" |
Select-Object DisplayName, UserPrincipalName, OnPremisesSyncEnabled
Cet export permet d’identifier les comptes qui n’ont pas encore reçu d’ImmutableID (soft‑match) et ceux qui en portent déjà un (hard‑match).
Gestion des erreurs fréquentes
Message d’erreur | Cause racine | Résolution |
---|---|---|
Unable to update this object because the following attributes are immutable... | Un compte cloud possède déjà un UPN/SMTP identique mais son ImmutableID renvoie à un autre objet on‑prem. | Réinitialiser le champ à null , puis relancer un hard‑match avec l’ObjectGUID correct. |
Property Conflict: The value "SMTP:user@contoso.com" already exists. | Adresse en double dans proxyAddresses . | Supprimez la valeur en trop, assurez‑vous qu’un seul SMTP: (majuscule) est défini par utilisateur. |
Sync-dirsync-delta Import: failed-modified | Le service ne parvient pas à lire l’attribut concerné (ACL, permission). | Vérifiez que le compte MSOL_<GUID> a les droits Read/Replicating Directory Changes sur l’OU. |
Surveillance continue & maintenance
Une fois la fusion réussie, sécurisez votre environnement hybride :
- Azure AD Connect Health : configurez les alertes par e‑mail pour toute erreur de duplication, de latence ou de quorum SQL.
- Rapports mensuels : exportez la liste des comptes
DirSyncEnabled
et comparez‑la aux utilisateurs actifs dans AD afin d’identifier les « orphelins » potentiels. - Mises à jour trimestrielles : appliquez les cumulative updates d’Azure AD Connect (ou de son successeur) pour rester compatible avec les évolutions du service Entra.
- Documentation vivante : notez la procédure de hard‑match et son script PowerShell dans votre runbook ; en 2025, l’onboarding d’une nouvelle filiale se fait souvent via rachat—le besoin reviendra !
FAQ – Questions fréquentes
Le soft‑match fonctionne‑t‑il si mon UPN on‑prem diffère du compte cloud ?
Non. Les deux valeurs doivent être strictement identiques, ou l’adresse SMTP principale doit correspondre. Si vous ne souhaitez pas renommer les comptes, recourez au hard‑match.
Quelle est la taille maximale d’un attribut proxyAddresses
?
1 024 caractères cumulés par objet. Au‑delà, Azure AD Connect tronque la valeur et génère une sync error.
Puis‑je supprimer complètement un ImmutableID ?
Oui, mais uniquement côté cloud avec Update-MgUser -OnPremisesImmutableId $null
. Ne modifiez jamais l’ObjectGUID
dans AD.
En cas de rollback, comment « désunir » les comptes ?
Vous devrez :
- Mettre
OnPremisesImmutableId
ànull
sur le compte cloud. - Désactiver la synchronisation pour l’utilisateur (
Set-MgUser -OnPremisesSyncEnabled $false
). - Supprimer le compte on‑prem ou changer son UPN avant de réactiver la sync.
Annexe A : Script de diagnostic complet
Le script ci‑dessous recense les comptes cloud possédant un UPN identique mais un ImmutableID manquant, afin d’anticiper les échecs de soft‑match :
# Requires Microsoft.Graph v2
Connect-MgGraph -Scopes Directory.Read.All
\$cloudUsers = Get-MgUser -All |
Select DisplayName, UserPrincipalName, OnPremisesImmutableId
\$issues = \$cloudUsers |
Where-Object { \$*.OnPremisesImmutableId -eq \$null -and \$*.UserPrincipalName -like '\*@contoso.com' }
\$issues | Export-Csv "SoftMatch\_Pending.csv" -NoTypeInformation
Write-Host "Rapport généré : SoftMatch\_Pending.csv"
Annexe B : Checklist avant mise en production
- ✅ Sauvegarde de l’Active Directory (System State) & snapshot du serveur Azure AD Connect.
- ✅ Activation du soft‑match sur l’UPN.
- ✅ Validation des attributs UPN &
proxyAddresses
(uniques, pas de caractères accentués). - ✅ Communication interne : informer les utilisateurs qu’un court gel des modifications de profil aura lieu.
- ✅ Script PowerShell de hard‑match prêt et testé en pré‑production.
Conclusion
En combinant la méthode soft‑match pour la majorité des comptes et le hard‑match pour les cas particuliers, il est possible de migrer vers un environnement hybride sans recréer les boîtes mail, sans perte d’historique et sans déranger l’utilisateur final. La clé du succès réside dans un nettoyage rigoureux des attributs et l’adoption progressive de Microsoft Graph PowerShell, pierre angulaire des scripts d’administration Entra ID d’ici 2025.