Configurer manuellement la jointure hybride Microsoft Entra

Si l’utilisation d’Microsoft Entra Connect est une option pour vous, consultez les conseils dans Configurer la jointure hybride Microsoft Entra. L’utilisation de l’automatisation dans Microsoft Entra Connect simplifie considérablement la configuration de la jointure hybride Microsoft Entra.

Cet article décrit la configuration manuelle des conditions requises pour la jointure Microsoft Entra hybride, y compris les étapes pour les domaines managés et fédérés.

Prérequis

  • Microsoft Entra Connect
    • Afin que la jointure de synchronisation pour l’inscription de l’appareil réussisse, dans la configuration de l’inscription de l’appareil, n’excluez pas les attributs d’appareil par défaut de votre configuration de synchronisation Microsoft Entra Connect. Pour en savoir plus sur les attributs d’appareil par défaut synchronisés avec Microsoft Entra ID, consultez Attributs synchronisés par Microsoft Entra Connect.
    • Si les objets ordinateur des appareils pour lesquels vous voulez effectuer une jointure hybride Microsoft Entra appartiennent à des unités d’organisation (UO) spécifiques, configurez les bonnes UO à synchroniser dans Microsoft Entra Connect. Pour en savoir plus sur la synchronisation des objets ordinateur à l’aide de Microsoft Entra Connect, consultez Filtrage basé sur une unité d’organisation.
  • Les informations d’identification de l’administrateur d’entreprise pour chacune des forêts Active Directory Domain Services locales.
  • (Pour les domaines fédérés) Serveur Windows avec les services de fédération Active Directory installés.
  • Les utilisateurs peuvent inscrire leurs appareils avec Microsoft Entra ID. Pour plus d’informations sur ce paramètre, consultez la section Configurer les paramètres de l’appareil dans l’article Configurer les paramètres de l’appareil.

L’accès des appareils aux ressources Microsoft suivantes depuis le réseau de votre organisation est indispensable à la jointure hybride Microsoft Entra :

  • https://enterpriseregistration.windows.net
  • https://login.microsoftonline.com
  • https://device.login.microsoftonline.com
  • https://autologon.microsoftazuread-sso.com (Si vous utilisez ou prévoyez d’utiliser l’authentification unique fluide)
  • Le service d’émission de jeton de sécurité (STS, security token service) de votre organisation (pour les domaines fédérés)

Avertissement

Si votre entreprise utilise des serveurs proxy qui interceptent le trafic SSL pour des scénarios tels que la prévention de la perte de données ou les restrictions imposées aux locataires de Microsoft Entra, assurez-vous que le trafic vers ces URL est exclu de l'inspection et de la rupture TLS. Si ces URL ne sont pas exclues, cela peut entraîner des interférences avec l’authentification par certificat client ainsi que des problèmes d’inscription d’appareil et d’accès conditionnel en fonction de l’appareil.

Si votre organisation nécessite un accès Internet via un proxy sortant, vous pouvez utiliser WPAD (Web Proxy Auto-Discovery) pour activer l’inscription des appareils auprès de Microsoft Entra ID pour les ordinateurs Windows 10 ou version ultérieure. Pour résoudre des problèmes de configuration et de gestion du protocole WPAD, consultez Résolution des problèmes liés à la détection automatique.

Si vous n’utilisez pas le protocole WPAD, vous pouvez configurer des paramètres de proxy WinHTTP sur votre ordinateur à partir de la build 1709 de Windows 10. Pour plus d’informations, consultez Paramètres de proxy WinHTTP déployés via un objet de stratégie de groupe (GPO).

Remarque

Si vous configurez les paramètres du proxy sur votre ordinateur à l’aide des paramètres WinHTTP, les ordinateurs qui ne peuvent pas se connecter au proxy configuré ne pourront pas non plus se connecter à Internet.

Si votre organisation nécessite un accès à Internet via un proxy sortant authentifié, vérifiez que vos ordinateurs Windows 10 ou version ultérieure parviennent à s’authentifier correctement auprès du proxy sortant. Dans la mesure où les ordinateurs Windows 10 ou version ultérieure effectuent l’inscription de l’appareil en fonction du contexte de la machine, configurez l’authentification du proxy sortant selon le contexte de la machine. Poursuivez avec la configuration requise pour votre fournisseur de proxy sortant.

Vérifiez que l’appareil peut accéder aux ressources Microsoft requises ci-dessus sous le compte système en utilisant le script Tester la connectivité d’inscription d’appareil.

Configuration

Vous pouvez configurer des appareils hybrides joints à Microsoft Entra pour différents types de plateformes d’appareils Windows.

Une fois ces configurations terminées, suivez les instructions fournies dans l'aide pour vérifier l’inscription.

Configurer un point de connexion de service

Vos appareils utilisent un objet point de connexion de service (SCP) lors de l’inscription pour découvrir les informations de locataire Microsoft Entra. Dans votre instance Active Directory locale, l’objet SCP des appareils hybrides joints à Microsoft Entra doit exister dans la partition de contexte d’appellation de configuration de la forêt de l’ordinateur. Il n’existe qu’un seul contexte d’appellation de configuration par forêt. Dans une configuration Active Directory multi-forêt, le point de connexion de service doit exister dans toutes les forêts qui contiennent des ordinateurs joints à un domaine.

L’objet SCP contient deux valeurs de mot clé – azureADid:<TenantID> et azureADName:<verified domain>. La valeur <verified domain> dans le mot clé azureADName détermine le type du flux d’inscription d’appareil (fédéré ou géré) que l’appareil suivra après avoir lu la valeur SCP à partir de votre instance Active Directory locale. Vous trouverez plus d’informations sur les flux managés et fédérés dans l’article Fonctionnement de l’inscription d’appareil Microsoft Entra.

Pour récupérer le contexte d’appellation de configuration de votre forêt, vous pouvez utiliser l’applet de commande Get-ADRootDSE.

Pour une forêt avec le nom de domaine Active Directory fabrikam.com, le contexte d’appellation de configuration est le suivant :

CN=Configuration,DC=fabrikam,DC=com

Dans votre forêt, l’objet SCP pour l’inscription automatique des appareils joints à un domaine se trouve à l’emplacement suivant :

CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,[Your Configuration Naming Context]

Selon la manière dont vous déployez Microsoft Entra Connect, l'objet SCP peut déjà être configuré. Vous pouvez vérifier l’existence de l’objet et récupérer les valeurs de détection à l’aide du script PowerShell suivant :

$scp = New-Object System.DirectoryServices.DirectoryEntry;

$scp.Path = "LDAP://CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,CN=Configuration,DC=fabrikam,DC=com";

$scp.Keywords;

La sortie de $scp.Keywords présente les informations de locataire Microsoft Entra. Voici un exemple :

azureADName:microsoft.com
azureADId:72f988bf-86f1-41af-91ab-2d7cd011db47

Configurer l’émission de revendications

Dans une configuration Microsoft Entra fédérée, les appareils s’appuient sur AD FS ou sur un service de fédération local à partir d’un partenaire Microsoft pour s’authentifier auprès de Microsoft Entra ID. Les appareils s’authentifient pour obtenir un jeton d’accès afin de s’inscrire auprès du service Microsoft Entra Directory Device Registration Service (Azure DRS).

Les appareils Windows actuels s’authentifient à l’aide de l’authentification Windows intégrée auprès d’un point de terminaison WS-Trust actif (version 1.3 ou 2005) hébergé par le service de fédération local.

Lorsque vous utilisez AD FS, vous devez activer les points de terminaison WS-Trust suivants :

  • /adfs/services/trust/2005/windowstransport
  • /adfs/services/trust/13/windowstransport
  • /adfs/services/trust/2005/usernamemixed
  • /adfs/services/trust/13/usernamemixed
  • /adfs/services/trust/2005/certificatemixed
  • /adfs/services/trust/13/certificatemixed

Avertissement

adfs/services/trust/2005/windowstransport et adfs/services/trust/13/windowstransport doivent tous les deux être activés en tant que points de terminaison uniquement accessibles sur intranet et ils NE doivent PAS être exposés comme points de terminaison accessibles sur extranet via le proxy d’application web. Pour en savoir plus sur la désactivation des points de terminaison Windows WS-Trust, consultez Désactiver les points de terminaison Windows WS-Trust sur le proxy. Vous pouvez visualiser les points de terminaison qui sont activés par le biais de la console de gestion AD FS sous Service>Points de terminaison.

Remarque

Si vous n’utilisez pas AD FS en tant que service FS (Federation Service) local, suivez les instructions de votre fournisseur pour vérifier qu’il prend en charge les points de terminaison WS-Trust 1.3 ou 2005, et que ceux-ci sont publiés via le fichier MEX (fichier Metadata Exchange).

Pour que l’inscription d’appareils puisse se terminer, les revendications ci-après doivent exister dans le jeton que reçoit Azure DRS. Azure DRS crée un objet appareil dans Microsoft Entra ID avec certaines de ces informations. Microsoft Entra Connect se sert de ces informations pour associer l’objet appareil créé au compte d’ordinateur localement.

  • http://schemas.microsoft.com/ws/2012/01/accounttype
  • http://schemas.microsoft.com/identity/claims/onpremobjectguid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid

Si vous avez besoin de plusieurs noms de domaine vérifiés, vous devez fournir la revendication ci-après pour les ordinateurs :

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid

Si vous émettez déjà une revendication ImmutableID (par exemple, en utilisant mS-DS-ConsistencyGuid ou un autre attribut comme valeur source pour ImmutableID), vous devez fournir une revendication correspondante pour les ordinateurs :

  • http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID

Dans les sections ci-après, vous trouverez des informations concernant :

  • Les valeurs requises pour chaque revendication.
  • L’aspect d’une définition dans AD FS.

La définition vous permet de vérifier si les valeurs sont présentes ou si vous devez les créer.

Remarque

Si vous n’utilisez pas AD FS pour votre serveur de fédération local, suivez les instructions de votre fournisseur afin de créer la configuration appropriée permettant d’émettre ces revendications.

Émission de la revendication du type de compte

La revendication http://schemas.microsoft.com/ws/2012/01/accounttype doit contenir la valeur DJ, qui identifie l’appareil en tant qu’ordinateur joint à un domaine. Dans AD FS, vous pouvez ajouter une règle de transformation d’émission ressemblant à ceci :

@RuleName = "Issue account type for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "DJ"
);

Émission de la valeur ObjectGUID du compte d’ordinateur local

La revendication http://schemas.microsoft.com/identity/claims/onpremobjectguid doit contenir la valeur objectGUID du compte d’ordinateur local. Dans AD FS, vous pouvez ajouter une règle de transformation d’émission ressemblant à ceci :

@RuleName = "Issue object GUID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$", 
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/identity/claims/onpremobjectguid"),
   query = ";objectguid;{0}",
   param = c2.Value
);

Émettre l’objectSid du compte d’ordinateur local

La revendication http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid doit contenir la valeur objectSid du compte d’ordinateur local. Dans AD FS, vous pouvez ajouter une règle de transformation d’émission ressemblant à ceci :

@RuleName = "Issue objectSID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(claim = c2);

Émission de la valeur issuerID pour l’ordinateur s’il existe plusieurs noms de domaine vérifiés dans Microsoft Entra ID

La revendication http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid doit contenir l’URI (Uniform Resource Identifier) des noms de domaine vérifiés qui se connectent avec le service de fédération local (AD FS ou partenaire) émettant le jeton. Dans AD FS, vous pouvez ajouter des règles de transformation d’émission qui ressemblent aux suivantes dans l’ordre indiqué, après les règles précédentes. Une règle pour régir l’émission explicite de la règle pour les utilisateurs. Dans les règles suivantes, une première règle qui identifie une authentification de l’utilisateur ou de l’ordinateur est ajoutée.

@RuleName = "Issue account type with the value User when its not a computer"
NOT EXISTS(
[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "DJ"
]
)
=> add(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "User"
);

@RuleName = "Capture UPN when AccountType is User and issue the IssuerID"
c1:[
   Type == "http://schemas.xmlsoap.org/claims/UPN"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "User"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = regexreplace(
   c1.Value,
   ".+@(?<domain>.+)",
   "http://${domain}/adfs/services/trust/"
   )
);

@RuleName = "Issue issuerID for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = "http://<verified-domain-name>/adfs/services/trust/"
);

Dans la revendication précédente, <verified-domain-name> est un espace réservé. Remplacez-le par un de vos noms de domaine vérifiés dans Microsoft Entra ID. Par exemple, utilisez Value = "http://contoso.com/adfs/services/trust/".

Pour plus d’informations sur les noms de domaine vérifiés, consultez Ajouter un nom de domaine personnalisé à Microsoft Entra ID.

Pour obtenir une liste de vos domaines vérifiés d’entreprise, vous pouvez utiliser la cmdlet Get-MgDomain.

Liste des domaines d’entreprise

Émettre un ImmutableID pour l’ordinateur quand il en existe un pour les utilisateurs (par exemple, en utilisant mS-DS-ConsistencyGuid comme source pour ImmutableID)

La revendication http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID doit contenir une valeur valide pour les ordinateurs. Dans AD FS, vous pouvez créer une règle de transformation d’émission comme suit :

@RuleName = "Issue ImmutableID for computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID"),
   query = ";objectguid;{0}",
   param = c2.Value
);

Script d’assistance pour la création des règles de transformation d’émission AD FS

Le script ci-après vous aide à créer les règles de transformation d’émission décrites précédemment.

$multipleVerifiedDomainNames = $false
$immutableIDAlreadyIssuedforUsers = $false
$oneOfVerifiedDomainNames = 'example.com'   # Replace example.com with one of your verified domains

$rule1 = '@RuleName = "Issue account type for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "DJ"
);'

$rule2 = '@RuleName = "Issue object GUID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/identity/claims/onpremobjectguid"),
   query = ";objectguid;{0}",
   param = c2.Value
);'

$rule3 = '@RuleName = "Issue objectSID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(claim = c2);'

$rule4 = ''
if ($multipleVerifiedDomainNames -eq $true) {
$rule4 = '@RuleName = "Issue account type with the value User when it is not a computer"
NOT EXISTS(
[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "DJ"
]
)
=> add(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "User"
);

@RuleName = "Capture UPN when AccountType is User and issue the IssuerID"
c1:[
   Type == "http://schemas.xmlsoap.org/claims/UPN"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "User"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = regexreplace(
   c1.Value,
   ".+@(?<domain>.+)",
   "http://${domain}/adfs/services/trust/"
   )
);

@RuleName = "Issue issuerID for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = "http://' + $oneOfVerifiedDomainNames + '/adfs/services/trust/"
);'
}

$rule5 = ''
if ($immutableIDAlreadyIssuedforUsers -eq $true) {
$rule5 = '@RuleName = "Issue ImmutableID for computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID"),
   query = ";objectguid;{0}",
   param = c2.Value
);'
}

$existingRules = (Get-ADFSRelyingPartyTrust -Identifier urn:federation:MicrosoftOnline).IssuanceTransformRules

$updatedRules = $existingRules + $rule1 + $rule2 + $rule3 + $rule4 + $rule5

$crSet = New-ADFSClaimRuleSet -ClaimRule $updatedRules

Set-AdfsRelyingPartyTrust -TargetIdentifier urn:federation:MicrosoftOnline -IssuanceTransformRules $crSet.ClaimRulesString

Notes

  • Ce script ajoute les règles aux règles existantes. N’exécutez pas le script à deux reprises, car l’ensemble de règles serait alors ajouté deux fois. Avant de réexécuter le script, assurez-vous qu’il n’existe aucune règle correspondante pour ces revendications (sous les conditions associées).

  • Si vous disposez de plusieurs noms de domaine vérifiés, définissez la valeur de $multipleVerifiedDomainNames dans le script sur $true. Assurez-vous également de supprimer toute revendication issuerid existante créée par Microsoft Entra Connect ou d'autres moyens. Voici un exemple de cette règle :

    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/")); 
    

Si vous avez émis une revendication ImmutableID pour les comptes d'utilisateurs, définissez la valeur de $immutableIDAlreadyIssuedforUsers dans le script sur $true.

Résoudre les problèmes liés à votre implémentation

Si vous rencontrez des problèmes durant l’exécution d’une jointure hybride Microsoft Entra pour des appareils Windows joints à un domaine, consultez :