Назад | Перейти на главную страницу

Почему учетные записи пользователей Active Directory не поддерживают автоматическую аутентификацию Kerberos AES?

Я играю с тестовым доменом на Windows Server 2012 R2. Я работаю на максимально возможном функциональном уровне и не имею проблем с обратной совместимостью в моей небольшой тестовой среде. Однако я понял, что, несмотря на то, что у меня служба поддержки для аутентификации Kerberos AES она по умолчанию не включена ни для одного пользователя. Мне действительно нужно войти в свойства пользователя и отметить галочкой «Эта учетная запись поддерживает 128-битное шифрование Kerberos AES» и / или «Эта учетная запись поддерживает 256-битное шифрование Kerberos AES», чтобы включить его.

(Впервые я понял это при добавлении тестовой учетной записи в группу «Защищенные пользователи», которая устанавливает политику, требующую использования AES. После этого все мои сетевые входы в систему начинали давать сбой, пока я не установил эти флажки.)

Я полагаю, что это может быть отключено по умолчанию, чтобы обеспечить обратную совместимость для некоторых систем, но я не могу найти способ включить это для всех пользователей или хотя бы объяснить текущее поведение.

Любые идеи?

Установка флажков Kerberos AES для пользователей приведет к сбоям аутентификации на клиентах, предшествующих Vista. Вероятно, это причина того, что он не установлен по умолчанию.

Флажки поддержки Kerberos AES соответствуют значению, установленному в атрибуте с именем msDS-SupportedEncryptionTypes

Чтобы изменить это для нескольких пользователей, вы можете использовать PowerShell и модуль 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)}
    }
}