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


8

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

(我在将测试帐户添加到“受保护的用户”组时首先意识到了这一点,该帐户将策略设置为需要AES。此后,我的所有网络登录都开始失败,直到选中了这些框。)

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

有任何想法吗?

Answers:


10

选中用户的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)}
    }
}

有什么方法可以在新用户上默认设置此设置?
Reid Rankin

2
您可以通过修改AD模式将其设置为新用户的默认设置。如果您想要更详细的答案,则可能应该将其作为一个单独的问题提出。
Ryan Bolger 2015年

由于Vista之前的客户端已经失去支持很多年了,如果Microsoft最终默认为所有缺少msDS-SupportedEncryptionType属性的用户启用AES加密类型,那就太好了。
Markus Kuhn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.