Prise en charge de plusieurs domaines pour la fédération avec Microsoft Entra ID

La documentation suivante fournit des conseils sur l’utilisation de plusieurs domaines de niveau supérieur et sous-domaines lors de la fédération avec des domaines Microsoft 365 ou Microsoft Entra.

Prise en charge de plusieurs domaines de niveau supérieur

La fédération de plusieurs domaines de niveau supérieur avec Microsoft Entra ID nécessite une configuration supplémentaire qui n’est pas demandée pour la fédération avec un seul domaine de niveau supérieur.

Lorsqu’un domaine est fédéré avec Microsoft Entra ID, plusieurs propriétés sont définies sur le domaine dans Azure. L’une des plus importantes est IssuerUri. Cette propriété est un URI qui est utilisé par Microsoft Entra ID pour identifier le domaine auquel le jeton est associé. L’URI n’a pas besoin de résoudre quoi que ce soit, mais il doit s’agir d’un URI valide. Par défaut, Microsoft Entra ID affecte l’URI à la valeur de l’identificateur du service de fédération dans votre configuration AD FS locale.

Remarque

L’identificateur du service de fédération est un URI qui identifie de façon unique un service de fédération. Le service de fédération est une instance d’AD FS qui fonctionne en tant que service du jeton de sécurité.

Vous pouvez afficher IssuerUri à l’aide de la commande PowerShell Get-MsolDomainFederationSettings -DomainName <your domain>.

Capture d’écran montrant des résultats après l’entrée de la commande « Get-MsolDomainFederationSettings » dans PowerShell.

Remarque

Les modules Azure AD et MSOnline PowerShell sont dépréciés depuis le 30 mars 2024. Pour en savoir plus, lisez les informations de dépréciation. Passé cette date, la prise en charge de ces modules est limitée à une assistance de migration vers le SDK et les correctifs de sécurité Microsoft Graph PowerShell. Les modules déconseillés continueront de fonctionner jusqu’au 30 mars 2025.

Nous vous recommandons de migrer vers Microsoft Graph PowerShell pour interagir avec Microsoft Entra ID (anciennement Azure AD). Pour explorer les questions courantes sur la migration, reportez-vous au FAQ sur la migration. Remarque : Les versions 1.0.x de MSOnline peuvent connaître une interruption après le 30 juin 2024.

Un problème survient lorsque vous ajoutez plusieurs domaines de niveau supérieur. Par exemple, supposons que vous avez configuré la fédération entre Microsoft Entra ID et votre environnement local. Pour ce document, le domaine bmcontoso.com est utilisé. Un second domaine de premier niveau, bmfabrikam.com, est alors ajouté.

Capture d’écran montrant plusieurs domaines de niveau supérieur

Lorsque vous essayez de convertir le domaine bmfabrikam.com pour qu’il soit fédéré, une erreur se produit. La raison de cette erreur tient à une contrainte dans Microsoft Entra ID qui n’autorise pas IssuerUri à avoir la même valeur pour plusieurs domaines.

Capture d’écran montrant une erreur de fédération dans PowerShell.

Paramètre SupportMultipleDomain

Pour contourner cette contrainte, nous devons ajouter un IssuerUri différent, ce qui peut être effectué à l’aide du paramètre -SupportMultipleDomain. Ce paramètre est utilisé avec les applets de commande suivantes :

  • New-MsolFederatedDomain
  • Convert-MsolDomaintoFederated
  • Update-MsolFederatedDomain

Ce paramètre permet à Microsoft Entra ID de configurer IssuerUri afin qu’il soit basé sur le nom du domaine. IssuerUri sera unique au sein des annuaires dans Microsoft Entra ID. L’utilisation du paramètre permet à la commande PowerShell de s’exécuter correctement.

Capture d’écran montrant la réussite de l’exécution de la commande PowerShell.

Dans la capture d’écran du domaine bmfabrikam.com, vous pouvez voir les paramètres suivants :

Capture d’écran montrant les paramètres du domaine « bmfabrikam.com ».

-SupportMultipleDomain ne modifie pas les autres points de terminaison qui sont toujours configurés pour pointer vers le service de fédération adfs.bmcontoso.com.

-SupportMultipleDomain s’assure également que le système AD FS inclut la valeur Issuer appropriée dans les jetons émis pour Microsoft Entra ID. Cette valeur est définie en prenant la partie domaine de l’UPN de l’utilisateur et en l’utilisant comme domaine dans IssuerUri, c’est-à-dire https://{upn suffix}/adfs/services/trust.

Ainsi, pendant l’authentification auprès de Microsoft Entra ID ou de Microsoft 365, l’élément IssuerUri du jeton de l’utilisateur est employé pour localiser le domaine dans Microsoft Entra ID. Si aucune correspondance ne peut être trouvée, l’authentification échoue.

Par exemple, si l’UPN d’un utilisateur est bsimon@bmcontoso.com, l’élément IssuerUri dans le jeton émis par AD FS a la valeur http://bmcontoso.com/adfs/services/trust. Cet élément correspond à la configuration Microsoft Entra et donc l’authentification réussit.

La règle de revendication personnalisée suivante implémente cette logique :

c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)", "http://${domain}/adfs/services/trust/"));

Important

Afin d’utiliser le commutateur -SupportMultipleDomain lors de la tentative d’ajout de nouveaux domaines ou la conversion de domaines déjà existants, votre approbation fédérée doit déjà avoir été configurée pour les prendre en charge.

Mise à jour de l’approbation entre AD FS et Microsoft Entra ID

Si vous n’avez pas configuré l’approbation fédérée entre AD FS et votre instance Microsoft Entra ID, vous devrez peut-être recréer cette approbation. En effet, lorsqu’elle est configurée sans le paramètre -SupportMultipleDomain, l’élément IssuerUri est défini sur la valeur par défaut. Dans la capture d’écran ci-dessous, vous pouvez voir que IssuerUri a la valeur https://adfs.bmcontoso.com/adfs/services/trust.

Si vous avez correctement ajouté un nouveau domaine dans le centre d’administration Microsoft Entra, puis que vous essayez de le convertir à l’aide de Convert-MsolDomaintoFederated -DomainName <your domain>, vous obtenez l’erreur suivante.

Capture d’écran montrant une erreur de fédération dans PowerShell après une tentative de conversion d’un nouveau domaine à l’aide de la commande « Convert-MsolDomaintoFederated ».

Si vous essayez d’ajouter le commutateur -SupportMultipleDomain, vous recevez l’erreur suivante :

Capture d’écran montrant une erreur de fédération après l’ajout du commutateur « -SupportMultipleDomain ».

Tenter d’exécuter Update-MsolFederatedDomain -DomainName <your domain> -SupportMultipleDomain sur le domaine d’origine entraîne également une erreur.

Erreur de fédération

Utilisez les étapes ci-dessous pour ajouter un domaine de niveau supérieur supplémentaire. Si vous avez déjà ajouté un domaine sans utiliser le paramètre -SupportMultipleDomain, commencez par supprimer et mettre à jour votre domaine d’origine. Si vous n’avez pas encore ajouté un domaine de niveau supérieur, vous pouvez commencer par ajouter un domaine à l’aide de PowerShell de Microsoft Entra Connect.

Utilisez les étapes suivantes pour supprimer l’approbation de Microsoft Online et mettre à jour votre domaine d’origine.

  1. Sur votre serveur de fédération AD FS, ouvrez Gestion AD FS.
  2. Dans le volet gauche, développez Relations d’approbation et Approbations de la partie de confiance.
  3. Sur la droite, supprimez l’entrée Plateforme d’identité Microsoft Office 365 . Supprimer Microsoft Online
  4. Sur une machine qui a le Module Azure AD PowerShell installé, exécutez la commande PowerShell suivante : $cred=Get-Credential.
  5. Entrez le nom d’utilisateur et le mot de passe d’un administrateur d’identité hybride pour le domaine Microsoft Entra avec lequel vous voulez fédérer.
  6. Dans PowerShell, entrez Connect-MsolService -Credential $cred.
  7. Dans PowerShell, entrez Update-MSOLFederatedDomain -DomainName <Federated Domain Name> -SupportMultipleDomain. Cette mise à jour concerne le domaine d’origine. Donc, en utilisant les domaines ci-dessus, cela donnerait : Update-MsolFederatedDomain -DomainName bmcontoso.com -SupportMultipleDomain

Procédez comme suit pour ajouter le nouveau domaine de niveau supérieur à l’aide de PowerShell

  1. Sur une machine qui a le Module Azure AD PowerShell installé, exécutez la commande PowerShell suivante : $cred=Get-Credential.
  2. Entrez le nom d’utilisateur et le mot de passe d’un administrateur d’identité hybride pour le domaine Microsoft Entra avec lequel vous voulez fédérer
  3. Dans PowerShell, entrez Connect-MsolService -Credential $cred
  4. Dans PowerShell, entrez New-MsolFederatedDomain –SupportMultipleDomain –DomainName

Procédez comme suit pour ajouter le nouveau domaine de niveau supérieur à l’aide de Microsoft Entra Connect.

  1. Lancez Microsoft Entra Connect à partir du bureau ou du menu Démarrer
  2. Choisissez « Ajouter un domaine Microsoft Entra supplémentaire » Capture d’écran montrant la page « Tâches supplémentaires » avec l’option « Ajouter un domaine Microsoft Entra supplémentaire » sélectionnée.
  3. Entrez votre Microsoft Entra ID et vos informations d’identification Active Directory
  4. Sélectionnez le second domaine que vous souhaitez configurer pour la fédération. Ajouter un domaine Microsoft Entra supplémentaire
  5. Cliquez sur Installer

Vérifiez le nouveau domaine de niveau supérieur

À l’aide de la commande PowerShell Get-MsolDomainFederationSettings -DomainName <your domain>vous pouvez afficher l’IssuerUri mis à jour. La capture d’écran ci-dessous montre les paramètres de la fédération mis à jour sur le domaine d’origine http://bmcontoso.com/adfs/services/trust

Capture d’écran montrant les paramètres de fédération mis à jour sur le domaine d’origine.

Et IssuerUri sur le nouveau domaine a été défini sur https://bmcontoso.com/adfs/services/trust

Get-MsolDomainFederationSettings

Prise en charge des sous-domaines

Lorsque vous ajoutez un sous-domaine, en raison de la façon dont Microsoft Entra ID a géré les domaines, il héritera des paramètres du parent. Donc, IssuerUri doit correspondre aux parents.

Donc, supposons que j’ai bmcontoso.com et que j’ajoute ensuite corp.bmcontoso.com. Pour un nouvel utilisateur de corp.bmcontoso.com, l’IssuerUri doit être défini sur http://bmcontoso.com/adfs/services/trust . Toutefois, la règle standard implémentée ci-dessus pour Microsoft Entra ID génère un jeton avec un émetteur http://corp.bmcontoso.com/adfs/services/trust. ce qui ne correspondra pas à la valeur requise du domaine et l’authentification échouera.

Activation de la prise en charge des sous-domaines

Pour contourner ce problème, l’approbation de la partie de confiance AD FS de Microsoft Online doit être mise à jour. Pour cela, vous devez configurer une règle de revendication personnalisée afin qu’elle retire tous les sous-domaines du suffixe UPN de l’utilisateur pendant la construction de la valeur Issuer.

Utilisez la revendication suivante :

c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^.*@([^.]+\.)*?(?<domain>([^.]+\.?){2})$", "http://${domain}/adfs/services/trust/"));

[!NOTE] Le dernier numéro de l’expression régulière définit le nombre de domaines parents dans votre domaine racine. Dans le cas présent, bmcontoso.com est utilisé. Donc, deux domaines parents sont nécessaires. Si trois domaines parents doivent être conservés (par exemple, corp.bmcontoso.com), le nombre est trois. Vous pouvez si vous le souhaitez indiquer une plage. Dans ce cas, la correspondance est toujours effectuée avec un maximum de domaines. « {2,3} » correspond à deux ou trois domaines (par exemple, bmfabrikam.com et corp.bmcontoso.com).

Utilisez les étapes suivantes pour ajouter une revendication personnalisée pour prendre en charge des sous-domaines.

  1. Ouvrez Gestion AD FS

  2. Cliquez avec le bouton droit sur l’approbation de la partie de confiance Microsoft Online et choisissez Modifier les règles de revendication

  3. Sélectionnez la troisième règle de revendication et remplacez Modifier la revendication

  4. Remplacez la revendication en cours :

    c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)","http://${domain}/adfs/services/trust/"));
    

    par

    c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^.*@([^.]+\.)*?(?<domain>([^.]+\.?){2})$", "http://${domain}/adfs/services/trust/"));
    

    Remplacer la revendication

  5. Cliquez sur OK. Cliquez sur Appliquer. Cliquez sur OK. Fermez Gestion AD FS.

Étapes suivantes

Microsoft Entra Connect étant installé, vous pouvez vérifier l’installation et attribuer des licences.

Pour en savoir plus sur ces fonctionnalités, activées lors de l’installation : Mise à niveau automatique, Prévention des suppressions accidentelles et Microsoft Entra Connect Health.

Pour en savoir plus sur ces sujets courants, consultez l’article Planificateur Azure AD Connect Sync.

Explorez plus en détail l’Intégration de vos identités locales avec Microsoft Entra ID.