Я работал над делом, в котором мы получали периодически появляющуюся ошибку аутентификации при доступе к web-сайтам (SharePoint/Exchange), опубликованным на TMG.
Ошибка была следующей:
12202 The Forefront TMG denied the specified Uniform Resource Locator (URL)
Инфраструктура:
TMG 2010, член домена (контроллеры домена – Windows Server 2008 и Windows Server 2003)
Kerberos Constrained Delegation (KCD) сконфигурирован в качестве метода делегирования аутентификации в правилах публикации.
Опубликованные ресурсы: Exchange и SharePoint.
Сбор данных:
Мы провели трассировку в сети Internal на сервере TMG и обнаружили следующую ошибку, возвращаемую DC:
KerberosV5:KRB_ERROR — KDC_ERR_ETYPE_NOSUPP (14)
Эта ошибка означает несоответствие типов шифрования.
Проведя дальнейший анализ, мы обнаружили, что ошибка проявляется только тогда, когда защищенный канал (secure channel) установлен между TMG и контроллером домена с Windows Server 2003. Это можно определить с помощью следующей команды:
nltest /sc_verify:domainname
Дополнительная информация:
Когда сервер TMG (который работает на Windows Server 2008) пытается установить соединение по протоколу Kerberos, по умолчанию он использует тип шифрования AES, однако контроллеры домена на Windows Server 2003 поддерживают тип шифрования DES. Таким образом, если защищенный канал установлен между сервером TMG и контроллером домена на Windows Server 2003, соединение Kerberos не будет установлено из за различия в используемых методах шифрования. Если же сервер TMG установил защищенный канал с контроллером домена на Windows Server 2008, соединение пройдет успешно, поскольку оба они по умолчанию используют тип шифрования AES.
Решение:
Для решения этой проблемы мы можем использовать два подхода:
- Произвести апгрейд всех контроллеров домена до Windows Server 2008.
-
Разрешить использование всех методов шифрования на сервере TMG, который работает на Windows Server 2008 R2.
Процедура включения метода шифрования на Windows Server 2008 R2:
- Start > Gpedit.msc – откроется редактор локальной политики. Перейдем к следующему ключу: Computer Configuration\ Windows Settings\ Security Settings\ Local Policies\ Security Options
-
Щелкнем на параметре Network security: Configure encryption types allowed for Kerberos option.
-
Поставим галочки напротив всех видов шифрования.
-
Нажмем OK и закроем Gpedit.
-
Перезагрузим сервер.
Политика устанавливает запись реестра SupportedEncryptionTypes в значение 0x7FFFFFFF. Запись реестра SupportedEncryptionTypes находится по следующему пути:
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\parameters\
См.: http://support.microsoft.com/kb/977321.
Автор:
Junaid Ahmad Jan — Security Support Escalation Engineer, Microsoft CSS Forefront Security Edge Team
Рецензент:
Richard Barker — Sr Security Support Escalation Engineer, Microsoft CSS Forefront Security Edge Team
Оригинал:
Страницы в социальных сетях:
Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell
Большое спасибо автору за статью. Имел сходную ситуацию, всю голову сломал пока не попалась на глаза эта публикация. Очень помогла.