Pourquoi les comptes utilisateurs Active Directory ne prennent-ils pas automatiquement en charge l'authentification Kerberos AES ?

J’expérimente avec un domaine de test sur Windows Server 2012 R2. Je fonctionne au niveau fonctionnel le plus élevé possible et n’ai aucun problème de rétrocompatibilité dans mon petit environnement de test. Cependant, j’ai réalisé que malgré le fait que j’ai la prise en charge de l’authentification Kerberos AES, elle n’est pas activée par défaut pour les utilisateurs. Je dois aller dans les propriétés d’un utilisateur et cocher « Ce compte prend en charge le chiffrement Kerberos AES 128 bits » et/ou « Ce compte prend en charge le chiffrement Kerberos AES 256 bits » pour l’activer.

(J’ai d’abord réalisé cela en ajoutant un compte de test au groupe « Utilisateurs protégés », qui définit une stratégie exigeant AES. Après cela, toutes mes connexions réseau ont commencé à échouer jusqu’à ce que je coche ces cases.)

Je suppose que cela pourrait être désactivé par défaut pour assurer la rétrocompatibilité avec certains systèmes, mais je ne trouve pas de moyen de l’activer pour tous les utilisateurs, ni même d’explication du comportement actuel.

Des idées ?


Source : Server Fault

Cocher les cases Kerberos AES pour les utilisateurs causerait des échecs d’authentification sur les clients antérieurs à Vista. C’est probablement la raison pour laquelle ce n’est pas défini par défaut.

Les cases de prise en charge Kerberos AES correspondent à la valeur définie dans un attribut appelé msDS-SupportedEncryptionTypes

Pour modifier cela pour plus d’un utilisateur, vous pouvez utiliser PowerShell et le module ActiveDirectory :

`# The numerical values for Kerberos AES encryption types to support
$AES128 = 0x8
$AES256 = 0x10

Fetch all users from an OU with their current support encryption types attribute

$Users = Get-ADUser -Filter * -SearchBase “OU=SecureUsers,OU=Users,DC=domain,DC=tld” -Properties “msDS-SupportedEncryptionTypes”
foreach($User in $Users)
{
# If none are currently supported, enable AES256
$encTypes = $User.“msDS-SupportedEncryptionType”
if(($encTypes -band $AES128) -ne $AES128 -and ($encTypes -band $AES256) -ne $AES256)
{
Set-ADUser $User -Replace @{“msDS-SupportedEncryptionTypes”=($encTypes -bor $AES256)}
}
}