为什么 Active Directory 用户帐户不自动支持 Kerberos AES 身份验证?

为什么 Active Directory 用户帐户不自动支持 Kerberos AES 身份验证?

我正在 Windows Server 2012 R2 上使用测试域。我以最高的功能级别运行,在我的小型测试环境中没有向后兼容性问题。然而,我意识到,尽管我有支持对于 Kerberos AES 身份验证,默认情况下不会为任何用户启用它。我必须实际进入用户属性并选中“此帐户支持 Kerberos AES 128 位加密”和/或“此帐户支持 Kerberos AES 256 位加密”才能启用它。

(我第一次意识到这一点是在向“受保护的用户”组添加测试帐户时,该组设置策略以要求 AES。之后,我的所有网络登录都开始失败,直到我选中这些框。)

我认为此功能可能默认被禁用以确保某些系统的向后兼容性,但我找不到为所有用户启用此功能的方法,甚至找不到对当前行为的解释。

有任何想法吗?

答案1

为用户勾选 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)}
    }
}

答案2

使用 Active Directory 用户和计算机,您还可以突出显示多个用户,右键单击,选择属性,然后选择帐户,并选择应用于所有选定用户的选项。

相关内容