web-dev-qa-db-ja.com

Active Directoryユーザーアカウントが自動的にKerberos AES認証をサポートしないのはなぜですか?

Windows Server 2012 R2のテストドメインで遊んでいます。私は可能な限り最高の機能レベルで動作しており、小規模なテスト環境での下位互換性の問題はありません。ただし、Kerberos AES認証用にsupportを設定しているにもかかわらず、どのユーザーもデフォルトで有効になっていないことに気付きました。実際にユーザーのプロパティに移動し、「このアカウントはKerberos AES 128ビット暗号化をサポートしています」または「このアカウントはKerberos AES 256ビット暗号化をサポートしています」をチェックして有効にする必要があります。

(AESを要求するポリシーを設定する「保護されたユーザー」グループにテストアカウントを追加したときに、最初にこれに気付きました。その後、これらのボックスをオンにするまで、すべてのネットワークログインが失敗し始めました。)

一部のシステムの下位互換性を確保するために、これはデフォルトで無効になっていると思いますが、すべてのユーザーに対してこれを有効にする方法、または現在の動作の説明すら見つかりません。

何か案は?

8
Reid Rankin

ユーザーの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)}
    }
}
10