Active-Directory

為什麼 Active Directory 使用者帳戶不自動支持 Kerberos AES 身份驗證?

  • September 16, 2021

我正在使用 Windows Server 2012 R2 上的測試域。我在盡可能高的功能級別上執行,並且在我的小型測試環境中沒有向後兼容性問題。但是,我已經意識到,儘管我支持Kerberos AES 身份驗證,但預設情況下並未對任何使用者啟用它。我實際上必須進入使用者的屬性並選中“此帳戶支持 Kerberos AES 128 位加密”和/或“此帳戶支持 Kerberos AES 256 位加密”才能啟用它。

(我在將測試帳戶添加到“受保護的使用者”組時首先意識到這一點,該組將策略設置為需要 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)}
   }
}

引用自:https://serverfault.com/questions/616487