Anavem
Languageen
Comment résoudre les erreurs de connexion Set-AzureADKerberosServer dans Windows Hello

Comment résoudre les erreurs de connexion Set-AzureADKerberosServer dans Windows Hello

Résolvez les erreurs 'Échec de connexion au domaine' lors de la configuration de Windows Hello for Business Cloud Kerberos Trust en évitant les pièges courants d'authentification et en utilisant le bon contexte d'exécution PowerShell.

Evan MaelEvan Mael
26 mars 2026 18 min
hardazure-ad 9 étapes 18 min

Pourquoi Set-AzureADKerberosServer échoue-t-il avec des erreurs de connexion ?

Le cmdlet Set-AzureADKerberosServer est essentiel pour configurer Windows Hello for Business Cloud Kerberos Trust dans les environnements hybrides Entra ID. Cependant, les administrateurs rencontrent fréquemment l'erreur frustrante « Échec de la connexion au domaine » lorsqu'ils tentent d'exécuter ce cmdlet. Cette erreur se produit généralement en raison de conflits de contexte d'authentification, en particulier lors de l'utilisation incorrecte du paramètre -DomainCredential.

Qu'est-ce qui rend la configuration de Cloud Kerberos Trust complexe ?

Cloud Kerberos Trust relie l'authentification Active Directory sur site aux services Entra ID (anciennement Azure AD) basés sur le cloud. La configuration nécessite la création d'objets spécifiques dans les deux environnements : un compte d'ordinateur AzureADKerberos et un compte utilisateur krbtgt_AzureAD dans votre domaine sur site, ainsi que des objets cloud correspondants dans Entra ID. La complexité réside dans les exigences d'authentification double - vous avez besoin de privilèges d'administrateur global dans Entra ID et de privilèges d'administrateur de domaine dans votre domaine sur site simultanément.

Comment les forêts multi-domaines compliquent-elles la configuration ?

Dans les environnements de forêts multi-domaines, des défis supplémentaires apparaissent autour du contexte d'exécution et de la portée des autorisations. Exécuter le cmdlet depuis le mauvais domaine ou utiliser des identifiants d'administrateur d'entreprise depuis le domaine racine peut provoquer des conflits de sAMAccountName et des échecs d'authentification. La solution nécessite de comprendre le contexte d'exécution approprié et d'utiliser des comptes d'administrateur spécifiques au domaine.

Ce tutoriel propose une approche systématique pour résoudre ces erreurs de connexion, en se concentrant sur le contexte d'exécution PowerShell approprié, les exigences d'authentification et la vérification de la connectivité du domaine. Vous apprendrez à éviter les pièges courants qui causent ces erreurs et à établir un processus de configuration fiable pour Windows Hello for Business Cloud Kerberos Trust.

Guide de mise en oeuvre

Procédure complète

01

Installer et vérifier les modules PowerShell requis

Commencez par vérifier si le module AzureADHybridAuthenticationManagement est installé. Ce module contient le cmdlet Set-AzureADKerberosServer qui est essentiel pour la configuration de Cloud Kerberos Trust.

Get-Module -ListAvailable AzureADHybridAuthenticationManagement

Si le module n'est pas installé, installez-le depuis la PowerShell Gallery :

Install-Module AzureADHybridAuthenticationManagement -Force
Install-Module AzureAD -Force

Vérifiez votre politique d'exécution PowerShell et définissez-la sur RemoteSigned si nécessaire :

Get-ExecutionPolicy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Astuce pro : Exécutez toujours PowerShell en tant qu'administrateur lorsque vous travaillez avec des opérations de domaine. Faites un clic droit sur PowerShell et sélectionnez 'Exécuter en tant qu'administrateur' pour éviter les problèmes de permission.

Vérification : Exécutez Get-Module AzureADHybridAuthenticationManagement -ListAvailable pour confirmer que le module est installé et prêt.

02

Établir une connexion Entra ID avec une authentification appropriée

Connectez-vous à Entra ID en utilisant vos identifiants d'administrateur global. Cette connexion est cruciale pour que la cmdlet Set-AzureADKerberosServer fonctionne correctement.

Connect-AzureAD

Lorsque vous y êtes invité, entrez vos identifiants d'administrateur global (format admin@yourtenant.onmicrosoft.com). Vérifiez la connexion en vérifiant les détails de votre locataire :

Get-AzureADTenantDetail | Select-Object DisplayName, ObjectId
Get-AzureADCurrentSessionInfo

La sortie devrait afficher le nom de votre locataire et confirmer que vous êtes authentifié en tant qu'administrateur global.

Avertissement : N'utilisez pas de comptes d'utilisateur réguliers ou de principaux de service pour cette étape. La cmdlet Set-AzureADKerberosServer nécessite des privilèges d'administrateur global pour créer les objets Entra ID nécessaires.

Vérification : La commande Get-AzureADCurrentSessionInfo devrait retourner votre UPN et les informations de locataire sans erreurs.

03

Définir les variables de domaine et vérifier les prérequis

Configurez les variables nécessaires pour la configuration de votre domaine. Remplacez les valeurs par votre domaine et les informations de locataire réels :

$Domain = "contoso.com"  # Le FQDN de votre domaine cible
$CloudUPN = "admin@contoso.onmicrosoft.com"  # Votre UPN d'Admin Global Entra ID

Vérifiez la résolution DNS vers vos contrôleurs de domaine et vérifiez la connectivité réseau :

nslookup $Domain
Test-NetConnection -ComputerName $Domain -Port 88  # Kerberos
Test-NetConnection -ComputerName $Domain -Port 389  # LDAP

Vérifiez si des objets Kerberos AzureAD existants sont présents dans votre domaine :

try {
    Get-ADComputer -Filter "Name -eq 'AzureADKerberos'" -SearchBase "OU=Domain Controllers,$((Get-ADDomain).DistinguishedName)"
    Get-ADUser -Filter "Name -eq 'krbtgt_AzureAD'" -SearchBase "CN=Users,$((Get-ADDomain).DistinguishedName)"
} catch {
    Write-Host "Aucun objet Kerberos AzureAD existant trouvé - ceci est attendu pour les nouvelles configurations"
}

Vérification : la résolution DNS devrait renvoyer les IP de vos contrôleurs de domaine, et les tests réseau devraient montrer des connexions réussies sur les ports 88 et 389.

04

Supprimer les objets Kerberos existants si présents

Si vous avez trouvé des objets Kerberos AzureAD existants à l'étape précédente, supprimez-les avant d'en créer de nouveaux. Cela évite les conflits et garantit une configuration propre.

# Vérifier la configuration du serveur Kerberos existant
try {
    $ExistingServer = Get-AzureADKerberosServer -Domain $Domain -UserPrincipalName $CloudUPN
    if ($ExistingServer) {
        Write-Host "Configuration du serveur Kerberos existante trouvée. Suppression..."
        Remove-AzureADKerberosServer -Domain $Domain -UserPrincipalName $CloudUPN
    }
} catch {
    Write-Host "Aucun serveur Kerberos existant trouvé - création en cours"
}

Si vous avez des objets AD existants, supprimez-les manuellement :

# Supprimer l'objet ordinateur s'il existe
try {
    $Computer = Get-ADComputer -Filter "Name -eq 'AzureADKerberos'"
    if ($Computer) {
        Remove-ADComputer -Identity $Computer -Confirm:$false
        Write-Host "Objet ordinateur AzureADKerberos existant supprimé"
    }
} catch { }

# Supprimer l'objet utilisateur s'il existe
try {
    $User = Get-ADUser -Filter "Name -eq 'krbtgt_AzureAD'"
    if ($User) {
        Remove-ADUser -Identity $User -Confirm:$false
        Write-Host "Objet utilisateur krbtgt_AzureAD existant supprimé"
    }
} catch { }
Astuce pro : Attendez 15-30 secondes après avoir supprimé les objets avant de passer à l'étape suivante. Cela permet à la réplication Active Directory de se terminer.

Vérification : Relancez les commandes Get-ADComputer et Get-ADUser de l'étape 3 pour confirmer que les objets ont disparu.

05

Exécuter Set-AzureADKerberosServer sans identifiants de domaine

C'est l'étape critique où la plupart des administrateurs rencontrent l'erreur 'Échec de la connexion au domaine'. La clé est de NE PAS utiliser le paramètre -DomainCredential, qui interfère avec le processus d'authentification.

# INCORRECT - Cela provoque l'erreur de connexion :
# $DomainCred = Get-Credential
# Set-AzureADKerberosServer -Domain $Domain -UserPrincipalName $CloudUPN -DomainCredential $DomainCred

# CORRECT - Exécuter sans identifiants de domaine explicites :
Set-AzureADKerberosServer -Domain $Domain -UserPrincipalName $CloudUPN

Le cmdlet utilisera votre contexte d'authentification Windows actuel (puisque vous exécutez en tant qu'administrateur de domaine) combiné avec votre connexion Entra ID. Vous devriez voir une sortie similaire à :

Création de l'objet serveur Kerberos dans Azure AD...
Création du compte d'ordinateur dans Active Directory...
Création du compte utilisateur dans Active Directory...
Serveur Kerberos créé avec succès.
Avertissement : Si vous êtes dans une forêt multi-domaines, exécutez cette commande depuis une machine dans le domaine enfant cible, pas depuis le domaine racine. Utilisez un compte d'administrateur de domaine spécifique au domaine enfant pour éviter les conflits de sAMAccountName.

Si la commande échoue, vérifiez attentivement le message d'erreur. Les problèmes courants incluent des autorisations insuffisantes ou des problèmes de connectivité réseau.

Vérification : La commande doit se terminer sans erreurs et afficher des messages de succès pour chaque étape de création d'objet.

06

Vérifier la création de l'objet serveur Kerberos

Après une exécution réussie, vérifiez que tous les objets requis ont été créés correctement dans Entra ID et Active Directory.

# Vérifiez la configuration du serveur Kerberos dans Entra ID
$KerberosServer = Get-AzureADKerberosServer -Domain $Domain -UserPrincipalName $CloudUPN
$KerberosServer | Format-List Id, UserAccount, ComputerAccount, Domain, KeyVersion

Vérifiez l'objet ordinateur Active Directory :

$Computer = Get-ADComputer -Identity "AzureADKerberos" -Properties *
$Computer | Select-Object Name, DistinguishedName, ServicePrincipalNames, @{Name='EncryptionTypes';Expression={$_.'msDS-SupportedEncryptionTypes'}}

Vérifiez le compte utilisateur Kerberos :

$User = Get-ADUser -Identity "krbtgt_AzureAD" -Properties *
$User | Select-Object Name, DistinguishedName, UserPrincipalName, Enabled

Vérifiez que les types de chiffrement sont correctement configurés :

Get-ADComputer -Identity "AzureADKerberos" -Properties msDS-SupportedEncryptionTypes | Select-Object Name, @{Name='EncryptionTypes';Expression={$_.'msDS-SupportedEncryptionTypes'}}
Astuce pro : La valeur msDS-SupportedEncryptionTypes doit être 28 (0x1C), ce qui représente la prise en charge des types de chiffrement AES128, AES256 et RC4.

Vérification : Tous les objets doivent exister avec les attributs appropriés. L'objet ordinateur doit être dans l'OU Domain Controllers, et le compte utilisateur doit être activé.

07

Tester la fonctionnalité Kerberos et les noms principaux de service

Testez la configuration Kerberos pour vous assurer qu'elle fonctionne correctement. Commencez par effacer tous les tickets Kerberos existants et en demander un nouveau :

# Effacer les tickets existants
klist purge

# Demander un ticket pour le service Kerberos AzureAD
klist get krbtgt_AzureAD@$Domain.ToUpper()

Vérifiez les noms principaux de service (SPN) pour le compte d'ordinateur :

setspn -L AzureADKerberos

La sortie devrait montrer des SPN comme :

HOST/AzureADKerberos
HOST/AzureADKerberos.contoso.com
RestrictedKrbHost/AzureADKerberos
RestrictedKrbHost/AzureADKerberos.contoso.com

Vérifiez les journaux d'événements Windows pour toute erreur liée à Kerberos :

Get-WinEvent -FilterHashtable @{LogName='System';ID=4,14,16,27} -MaxEvents 10 | Format-Table TimeCreated, Id, LevelDisplayName, Message -Wrap

Testez la connectivité du contrôleur de domaine et l'authentification Kerberos :

# Tester l'authentification Kerberos au contrôleur de domaine
$DC = (Get-ADDomainController -Discover -Domain $Domain).HostName
Test-NetConnection -ComputerName $DC -Port 88
nltest /dsgetdc:$Domain

Vérification : La commande klist devrait récupérer avec succès un ticket Kerberos, et setspn devrait montrer les SPN attendus sans erreurs.

08

Configurer les paramètres de stratégie Windows Hello for Business

Avec les objets serveur Kerberos créés, configurez les paramètres de stratégie de groupe nécessaires pour Windows Hello for Business Cloud Kerberos Trust.

Ouvrez la gestion des stratégies de groupe et accédez à l'UO appropriée contenant vos ordinateurs cibles. Créez ou modifiez un GPO avec ces paramètres :

Configuration de l'ordinateur > Stratégies > Modèles d'administration > Composants Windows > Windows Hello for Business

- Utiliser Windows Hello for Business : Activé
- Utiliser la confiance cloud pour l'authentification sur site : Activé
- Configurer les facteurs de déverrouillage de l'appareil : Activé (configurer selon les besoins)
- Configurer les facteurs de verrouillage dynamique : Activé (optionnel)

Vous pouvez également configurer ces paramètres via PowerShell sur des machines individuelles pour les tests :

# Activer Windows Hello for Business
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "AllowDomainPINLogon" -Value 1 -PropertyType DWORD -Force

# Activer la confiance cloud
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork" -Name "UseCloudTrustForOnPremAuth" -Value 1 -PropertyType DWORD -Force

Vérifiez que les paramètres du registre ont été appliqués :

Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "AllowDomainPINLogon"
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\PassportForWork" -Name "UseCloudTrustForOnPremAuth"
Astuce pro : Testez la configuration sur quelques machines pilotes avant de la déployer dans toute votre organisation. Cela aide à identifier les problèmes spécifiques à l'environnement.

Vérification : Exécutez gpupdate /force sur les machines cibles et vérifiez que les valeurs du registre sont correctement définies.

09

Surveiller et dépanner les problèmes courants

Configurez la surveillance pour détecter les problèmes courants tôt et établissez des procédures de dépannage pour la maintenance continue.

Créez un script PowerShell pour vérifier régulièrement l'état de votre configuration Kerberos :

# Script de vérification de l'état
$Domain = "contoso.com"
$CloudUPN = "admin@contoso.onmicrosoft.com"

# Connexion à Azure AD
Connect-AzureAD

# Vérifier l'état du serveur Kerberos
try {
    $KerberosServer = Get-AzureADKerberosServer -Domain $Domain -UserPrincipalName $CloudUPN
    Write-Host "✓ Serveur Kerberos trouvé : $($KerberosServer.Id)" -ForegroundColor Green
    
    # Vérifier la version de la clé et la dernière mise à jour
    Write-Host "Version de la clé : $($KerberosServer.KeyVersion)" -ForegroundColor Yellow
    
} catch {
    Write-Host "✗ Serveur Kerberos non trouvé ou inaccessible" -ForegroundColor Red
    Write-Host $_.Exception.Message
}

# Vérifier les objets AD
try {
    $Computer = Get-ADComputer -Identity "AzureADKerberos" -Properties PasswordLastSet
    $User = Get-ADUser -Identity "krbtgt_AzureAD" -Properties PasswordLastSet
    
    Write-Host "✓ Objet ordinateur AD existant, mot de passe défini pour la dernière fois : $($Computer.PasswordLastSet)" -ForegroundColor Green
    Write-Host "✓ Objet utilisateur AD existant, mot de passe défini pour la dernière fois : $($User.PasswordLastSet)" -ForegroundColor Green
    
} catch {
    Write-Host "✗ Objets AD manquants ou inaccessibles" -ForegroundColor Red
}

Surveillez la rotation des clés et les changements de mot de passe :

# Vérifier si une rotation de clé est nécessaire (typiquement tous les 30 jours)
$Computer = Get-ADComputer -Identity "AzureADKerberos" -Properties PasswordLastSet
$DaysSinceRotation = (Get-Date) - $Computer.PasswordLastSet
if ($DaysSinceRotation.Days -gt 30) {
    Write-Host "⚠ Une rotation de clé peut être nécessaire - dernière rotation il y a $($DaysSinceRotation.Days) jours" -ForegroundColor Yellow
}
Avertissement : Si vous voyez des erreurs "Échec de la lecture des secrets du domaine", cela indique généralement des retards de réplication entre les contrôleurs de domaine. Attendez que la réplication soit terminée avant de poursuivre le dépannage.

Commandes de dépannage courantes pour les problèmes en cours :

# Effacer et actualiser les tickets Kerberos
klist purge
klist get krbtgt_AzureAD@$Domain.ToUpper()

# Vérifier la réplication du contrôleur de domaine
repadmin /showrepl

# Vérifier la résolution DNS
nslookup -type=SRV _kerberos._tcp.$Domain

Vérification : Le script de vérification de l'état doit s'exécuter sans erreurs et signaler que tous les objets sont présents et en bonne santé.

Questions Fréquentes

Pourquoi Set-AzureADKerberosServer échoue-t-il avec l'erreur 'Échec de la connexion au domaine' ?+
Cette erreur se produit généralement lors de l'utilisation du paramètre -DomainCredential, qui interfère avec le processus d'authentification. Le cmdlet doit être exécuté sans identifiants de domaine explicites, en se basant plutôt sur votre contexte d'authentification Windows actuel en tant qu'administrateur de domaine combiné à votre connexion Entra ID Global Administrator. Exécuter PowerShell en tant qu'administrateur et omettre le paramètre -DomainCredential résout la plupart des problèmes de connexion.
Quelles autorisations sont nécessaires pour exécuter Set-AzureADKerberosServer avec succès ?+
Vous avez besoin de deux autorisations : des privilèges d'administrateur global dans Entra ID (pour le paramètre -UserPrincipalName) et des privilèges d'administrateur de domaine dans le domaine cible sur site. Dans les forêts multi-domaines, utilisez l'administrateur d'entreprise pour les scénarios inter-domaines, mais sachez que cela peut provoquer des conflits de sAMAccountName. Exécutez toujours PowerShell en tant qu'administrateur et assurez-vous d'être connecté à Entra ID via Connect-AzureAD avant d'exécuter le cmdlet.
Comment résoudre les erreurs 'Échec de la lecture des secrets du domaine' ?+
Cette erreur indique généralement des retards de réplication Active Directory entre les contrôleurs de domaine, surtout dans les environnements multi-sites. Attendez 15 à 30 minutes pour que la réplication se termine, puis réessayez l'opération. Vous pouvez vérifier l'état de la réplication en utilisant 'repadmin /showrepl' et vérifier que l'objet ordinateur AzureADKerberos existe sur tous les contrôleurs de domaine. Des problèmes de connectivité réseau vers les contrôleurs de domaine sur les ports 88, 389 et 445 peuvent également causer cette erreur.
Puis-je exécuter Set-AzureADKerberosServer depuis n'importe quel domaine dans une forêt multi-domaines ?+
Non, vous devez exécuter le cmdlet depuis une machine dans le domaine cible où vous souhaitez créer les objets Kerberos. L'exécution depuis le domaine racine avec des identifiants d'Administrateur d'Entreprise peut entraîner des conflits de sAMAccountName dans les domaines enfants. Utilisez un compte d'Administrateur de Domaine spécifique au domaine enfant cible et exécutez le cmdlet depuis une machine jointe au domaine dans ce domaine pour de meilleurs résultats.
À quelle fréquence dois-je faire tourner les clés Kerberos AzureAD et comment les surveiller ?+
Microsoft recommande de faire tourner les clés Kerberos tous les 30 jours pour les meilleures pratiques de sécurité. Surveillez l'âge des clés en vérifiant la propriété PasswordLastSet du compte d'ordinateur AzureADKerberos à l'aide de Get-ADComputer. Vous pouvez automatiser la rotation des clés en utilisant Set-AzureADKerberosServer avec le paramètre -RotateServerKey. Mettez en place des scripts de surveillance pour alerter lorsque les clés approchent du seuil de 30 jours afin de maintenir la conformité en matière de sécurité.
Evan Mael
Écrit par

Evan Mael

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Partagez vos réflexions et analyses

Connectez-vous pour participer