Шлюз Microsoft Forefront Threat Management может использоваться для публикации веб-серверов и проверки подлинности пользователей, прежде чем разрешить им доступ к опубликованному веб-серверу. Если опубликованный веб-сервер также требует проверки подлинности пользователя, пославшего запрос, и если сервер Forefront TMG не может делегировать проверку подлинности опубликованному веб-серверу путем передачи учетных данных пользователя опубликованному веб-серверу или его олицетворения, опубликованный веб-сервер потребует от пользователя повторного предоставления учетных данных. Forefront TMG может передать учетные данные пользователя напрямую опубликованному серверу, только если они были получены с помощью обычной проверки подлинности или проверки подлинности на основе HTTP-форм. В частности, учетные данные, предоставляемые с сертификатом SSL, не могут быть переданы опубликованному серверу.

Forefront TMG поддерживает ограниченное делегирование Kerberos (сокращенное обозначение KCD - Kerberos constrained delegation), которое дает возможность опубликованным веб-серверам проверять подлинность пользователей по протоколу Kerberos после того, как Forefront TMG проверит их подлинность с помощью какого-либо иного метода. При этом ограниченное делегирование Kerberos устраняет необходимость повторного предоставления учетных данных со стороны пользователей. Например, поскольку проверка подлинности по протоколу Kerberos через Интернет практически невозможна, для проверки подлинности пользователей на сервере Forefront TMG могут использоваться SSL-сертификаты. После того как сервер Forefront TMG установит подлинность пользователя, он не может передать предоставленный пользователем SSL-сертификат клиента опубликованному серверу, но он может олицетворить пользователя и получить билет службы Kerberos для проверки подлинности пользователя (клиента) на опубликованном сервере.

Сервер Forefront TMG, выступающий в роли межсетевого экрана между Интернетом и внутренней сетью организации, должен проводить проверку подлинности клиентов, посылающих через Интернет запросы к серверам организации, для предотвращения атак со стороны анонимных и неавторизованных пользователей. Решение о том, какой метод обеспечивает достаточный уровень надежности при проверке подлинности и гарантирует невозможность доступа к опубликованным внутренним серверам со стороны неавторизованных пользователей, принимается каждой организацией индивидуально. Во многих крупных организациях (в том числе и в корпорации Майкрософт) существует тенденция к переходу на смарт-карты в качестве средства проверки пользователей вместо традиционных паролей. Смарт-карта в действительности представляет собой устройство для надежного хранения SSL-сертификата клиента. Смарт-карты обеспечивают двухфакторную проверку подлинности, которая строится на принципах «кое-что у вас есть» (смарт-карта) и «кое-что вы знаете» (личный идентификационный номер (PIN) смарт-карты). Уровень безопасности при такой схеме проверки подлинности гораздо выше по сравнению с паролями.

Внутренние серверы часто требуют проверки подлинности пользователей, направляющих запросы как из Интернета, так и из внутренней сети организации. Например, почтовый сервер должен проверять подлинность пользователей, включая внутренних пользователей, прежде чем предоставить им доступ к соответствующим личным почтовым ящикам. Проверка подлинности, выполняемая пограничным межсетевым экраном, не удовлетворяет этим требованиям.

Если Forefront TMG может перенаправлять учетные данные пользователя на внутренний сервер, нет необходимости запрашивать у пользователя учетные данные повторно. Однако при использовании SSL-сертификатов клиента Forefront TMG не может делегировать учетные данные пользователя внутреннему почтовому серверу, такому как сервер Microsoft Exchange, так как Forefront TMG не получает пароль, который может быть передан этому серверу. Также не существует способов передачи SSL-сертификата клиента другому серверу. Эта особенность протокола SSL специально предусмотрена для обеспечения безопасности.

Ограниченное делегирование Kerberos дает Forefront TMG возможность олицетворить пользователя, направившего веб-запрос, и выполнить проверку подлинности в определенных службах, запущенных на определенных опубликованных веб-серверах, включая серверы веб-клиента Exchange Outlook в случае, когда Forefront TMG после установления подлинности пользователя известно только его имя.

Дополнительные сведения о методах проверки подлинности, поддерживаемых Forefront TMG, см. в разделе Обзор проверки подлинности клиента.

В этом разделе представлены основные сведения, которые могут помочь в реализации ограниченного делегирования Kerberos в различных сценариях веб-публикации.

Принципы работы ограниченного делегирования Kerberos

Детальное описание протокола проверки подлинности Kerberos, включая ограниченное делегирование Kerberos, приведено в статье «How the Kerberos Version 5 Authentication Protocol Works» (Принципы работы протокола проверки подлинности Kerberos версии 5) на веб-узле Microsoft TechNet. В данном разделе приведены общие сведения о протоколе проверки подлинности Kerberos, имеющие отношение к ограниченному делегированию Kerberos в том виде, в каком он используется в Forefront TMG.

Протокол проверки подлинности Kerberos используется для подтверждения подлинности пользователей, пытающихся получить доступ к ресурсам сети. При проверке подлинности по протоколу Kerberos используются билеты, которые зашифровываются и расшифровываются с помощью секретных ключей и не содержат паролей пользователей. Запрос и доставка билетов производится с помощью сообщений протокола Kerberos. Используется два типа билетов: билеты предоставления билета (TGT) и билеты службы.

Клиент Kerberos (пользователь или служба) направляет запрос на получение билета в центр распространения ключей (KDC - Key Distribution Center), расположенный в домене. Запросы на получение билетов предоставления билета направляются в службу проверки подлинности KDC, а запросы на билеты службы - в службу предоставления билетов KDC. Если подлинность учетных данных клиента, направившего запрос в службу проверки подлинности, была подтверждена, KDC возвращает клиенту билет предоставления билета. Билет предоставления билета - это особый билет службы для службы проверки подлинности, который позволяет ей передавать учетные данные клиента в службу предоставления билетов в запросах на получение билетов службы для определенной службы на определенном компьютере. Билет предоставления билета выдается определенному клиенту и может повторно использоваться клиентом в запросах на получение дополнительных билетов службы для той же службы. Для получения билетов службы, предназначенных для другой службы, клиент должен предварительно получить в службе проверки подлинности новый билет предоставления билета. Каждый билет службы, выдаваемый службой предоставления билетов, предназначен для определенной службы на определенном компьютере.

Протокол Kerberos поддерживает механизм, известный как делегирование проверки подлинности. При использовании этого механизма клиент (запрашивающая служба) делегирует проверку подлинности другой службе. Для этого клиент сообщает в KDC, что эта служба авторизована от лица определенного участника безопасности Kerberos, например пользователя с учетной записью службы каталогов Active Directory. После этого вторая служба получает возможность делегировать проверку подлинности третьей службе.

Для этого используется прокси-билет предоставления билета или перенаправляемый билет предоставления билета. При использовании прокси-билета предоставления билета запрашивающая служба получает билет предоставления билета для третьей службы в контексте безопасности определенного пользователя и далее передает этот билет второй службе, которая использует его для запроса билетов службы. В этом случае запрашивающая служба должна знать имя третьей службы. При использовании перенаправляемого билета предоставления билета запрашивающая служба получает билет предоставления билета, помеченный как перенаправляемый, для другой службы в контексте безопасности определенного пользователя. Вторая служба может по необходимости использовать этот билет для запроса билетов на другие службы.

Для ограниченного делегирования могут использоваться только перенаправляемые билеты предоставления билетов. Билет предоставления билета может быть помечен как перенаправляемый, только если для учетной записи, под которой выполняется запрашиваемая служба, в Active Directory установлен контрольный флаг ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION. Для Forefront TMG это учетная запись компьютера Forefront TMG в Active Directory. Данный флаг устанавливается автоматически при настройке учетной записи в качестве доверенной для ограниченного делегирования Kerberos в Active Directory.

Ограниченное делегирование Kerberos - это функция, которая была введена в ОС Microsoft Windows Server 2003 и поддерживается двумя расширениями, включенными в реализацию протокола проверки подлинности Kerberos версии 5 в Windows Server 2008.

  • Смена протокола. Расширение смены протокола позволяет службе, использующей Kerberos, получать для себя билет службы Kerberos от лица участника безопасности Kerberos (пользователя или компьютера). При этом участнику безопасности не требуется проходить предварительную проверку подлинности в KDC. Вместо этого пользователь, посылающий службе запрос вместе с учетными данными, которые не применимы для проверки подлинности Kerberos, например SSL-сертификат клиента, может пройти проверку подлинности с использованием любого подходящего метода проверки подлинности Windows. По прохождении проверки Windows создает маркер пользователя. Затем, если служба имеет достаточные права на олицетворение в Windows, она использует этот маркер для олицетворения пользователя и запроса на получение билета службы Kerberos для другой службы. Предоставленный билет службы сопоставляется с маркером пользователя. Служба может использовать билет службы, полученный посредством смены протокола, для получения билетов службы для других служб и делегирования учетных данных. Для этого необходимо, чтобы учетная запись, под которой запущена служба, была правильно настроена на использование расширения ограниченного делегирования Kerberos.

  • Ограниченное делегирование. Расширение ограниченного делегирования позволяет службе получать билеты службы (от лица делегируемого пользователя) для ограниченного набора других служб, запущенных на определенных серверах сети, после того как ей будет предоставлен билет службы. Это может быть билет службы, полученный с помощью смены протокола.

Ограниченное делегирование предоставляет администраторам домена способ ограничения набора сетевых ресурсов, к которым может получать доступ служба, доверенная для делегирования. Для этого необходимо настроить учетную запись, под которой выполняется служба, как доверенную для делегирования определенному экземпляру службы, запущенному на определенном компьютере, либо набору экземпляров служб, запущенных на определенных компьютерах.

Каждый экземпляр службы определяется уникальным идентификатором, называемым имя службы-участника. Синтаксис имени службы-участника следующий: класс_службы/имя_узла:порт:

  • Класс службы представляет собой набор символов, определяющий службу. В ОС Windows существуют предопределенные классы для многих служб, однако классы служб также могут определяться пользователем. Например, службы IIS соответствуют классу служб Windows http.

  • Имя узла - это имя компьютера, на котором запущен экземпляр службы. Это может быть полное доменное имя или имя NetBIOS, но не IP-адрес. Имя узла является необязательным, но должно включаться в имена участников-служб, используемые Forefront TMG.

  • Номер порта является необязательным. Он используется для различения нескольких экземпляров одной службы, запущенных на одном узле. Он может опускаться, если служба использует порт по умолчанию для служб данного класса.

Каждый экземпляр службы, использующей проверку подлинности Kerberos, должен иметь имя участника-службы, чтобы клиенты могли опознавать экземпляр службы в сети. Имя участника-службы регистрируется с помощью атрибута Имя участника-службы учетной записи Windows, под которой запущен данный экземпляр службы. Таким образом, имя участника-службы связано с учетной записью, под которой выполняется данный экземпляр службы. Если службе необходимо пройти проверку подлинности в другой службе на определенном компьютере, она использует имя службы-участника для отличения ее от других служб, запущенных на этом компьютере.

При регистрации имени службы-участника в Active Directory это имя сопоставляется с учетной записью Windows, под которой выполняется соответствующая служба. Экземпляры службы могут автоматически регистрировать свои имена службы-участника при запуске. Регистрация имен служб-участников может также производиться администраторами вручную с помощью средства Setspn.exe для Windows Server 2003. Оно также позволяет просматривать, изменять и удалять имена служб-участников, зарегистрированных в учетной записи Windows. Средство Setspn.exe особенно полезно для проверки того, что определенное имя службы-участника зарегистрировано в определенной учетной записи Active Directory. Дополнительные сведения о получении и установке средства Setspn.exe см. в статье базы знаний Майкрософт: 892777«Windows Server 2003 Service Pack 1 Support Tools» (Средства поддержки Windows Server 2003 с пакетом обновления 1).

В целях реализации ограниченного делегирования Active Directory поддерживает список имен служб-участников, включающий экземпляры служб, к которым разрешено делегирование со стороны службы, запущенной под определенной учетной записью, т.е. разрешено получение билетов службы для ограниченного делегирования. Список имен служб-участников хранится в новом атрибуте ms-DS-Allowed-to-Delegate-to компьютера и учетных записей пользователей на компьютерах под управлением Windows Server 2008. Когда KDC в Windows Server 2008 обрабатывает запрос на получение билета службы с помощью расширения ограниченного делегирования, KDC проверяет, включено ли имя целевой службы-участника в список имен, хранящийся в атрибуте ms-DS-Allowed-to-Delegate-to.

Компьютеры под управлением Windows Server 2008 поддерживают два режима делегирования: неограниченное делегирование Kerberos и ограниченное делегирование Kerberos. Неограниченное делегирование Kerberos поддерживается в том случае, если пользователь предоставляет учетные данные для получения билета предоставления билета, который может быть передан любой службе, доверенной для делегирования. Схема работы этого режима соответствует реализации протокола Kerberos в Microsoft Windows 2000 Server. Ограниченное делегирование может использоваться службой в том случае, если служба может получить для себя билет службы Kerberos от лица пользователя, контекст безопасности которого подлежит делегированию. При использовании ограниченного делегирования Kerberos не имеет значения, получил ли пользователь билет службы напрямую путем прохождения проверки подлинности по протоколу Kerberos, или же билет был получен службой от лица пользователя посредством расширения смены протокола.

Чтобы служба могла использовать смену протокола совместно с ограниченным делегированием Kerberos и получить билет службы Kerberos для определенной службы от лица пользователя, прошедшего проверку подлинности при помощи метода, отличного от Kerberos, учетная запись, под которой запущена служба, должна быть настроена в Active Directory на разрешение ограниченного делегирования Kerberos для любого протокола проверки подлинности. Кроме того, олицетворяемая учетная запись пользователя не должна быть помечена как уязвимая и запрещенная к делегированию.

Примечание.
Forefront TMG поддерживает ограниченное делегирование Kerberos только в пределах домена.

Использование ограниченного делегирования Kerberos в Forefront TMG

При использовании других типов делегирования Forefront TMG может делегировать учетные данные, только если получение учетных данных клиента происходит с помощью обычной проверки подлинности или проверки подлинности на основе HTTP-форм. Учетные данные, предоставляемые с сертификатом SSL, не могут быть делегированы. Благодаря ограниченному делегированию Kerberos Forefront TMG может делегировать учетные данные клиента, предоставляемые для проверки подлинности следующих типов.

  • Обычная проверка подлинности

  • Проверка подлинности Digest

  • Встроенная проверка подлинности

  • Проверка подлинности по SSL-сертификатам клиента

  • Проверка подлинности на основе форм с именем и паролем пользователя

  • Проверка подлинности на основе форм с секретным кодом пользователя

Примечание.
Для встроенной проверки подлинности могут использоваться протоколы проверки подлинности Kerberos версии 5, NTLM или протокол проверки подлинности с запросом и подтверждением.

После установления подлинности пользователя, направившего веб-запрос с использованием протокола проверки подлинности, отличного от Kerberos, Forefront TMG может использовать смену протокола для переключения на протокол Kerberos и прохождения проверки подлинности от лица пользователя. Далее билет службы Kerberos отсылается вместо учетных данных пользователя на веб-сервер, поддерживающий использование Kerberos. Данная схема реализована в несколько этапов.

  1. На первом этапе пользователь, посылающий веб-запрос, проходит проверку подлинности на сервере Forefront TMG по протоколу, отличному от Kerberos, с использованием метода проверки (Active Directory).

  2. На втором этапе, после установления подлинности пользователя, для него создается маркер пользователя Windows. Так как при проверке подлинности пользователя протокол Kerberos не применялся, маркер пользователя не связан с билетом службы Kerberos. И наоборот, если пользователь проходит проверку подлинности по протоколу Kerberos, маркер пользователя косвенно связывается с билетом службы Kerberos.

  3. На этапе 3 Forefront TMG использует маркер пользователя для олицетворения пользователя и запроса билета службы Kerberos для определенной службы на опубликованном веб-сервере от лица пользователя.

  4. На четвертом этапе ОС Windows Server 2008 на сервере Forefront TMG обнаруживает отсутствие билета службы Kerberos в маркере пользователя и автоматически инициирует обмен протокола путем запроса билета службы на Forefront TMG для олицетворенного пользователя.

  5. На пятом этапе билет службы, выданный посредством смены протокола, сопоставляется с маркером пользователя и используется Forefront TMG для запроса билета службы для опубликованной службы. При правильной настройке ограниченного делегирования Kerberos опубликованных веб-серверов принимает билет службы Kerberos вместо имени и пароля, и пользователь проходит проверку подлинности.

Билет службы Kerberos на опубликованную службу может использоваться веб-сервером для получения дополнительных билетов на другие службы от имени того же пользователя. Например, если внешний сервер Exchange, опубликованный с помощью Forefront TMG, настроен в Active Directory как доверенный для делегирования внутреннему серверу Exchange, допускающему проверку подлинности Kerberos, внешний сервер может получить билеты службы для внешнего сервера от имени пользователей, прошедших проверку подлинности на сервере Forefront TMG.

Дополнительные технические сведения

Forefront TMG делегирует проверку подлинности путем запроса билета предоставления билета на определенную целевую службу, запущенную на определенном компьютере, в контексте безопасности пользователя Active Directory, прошедшего проверку подлинности на сервере Forefront TMG. Далее KDC создает билет предоставления билета для компьютера, на котором выполняется целевая служба от имени пользователя, и отсылает его Forefront TMG. Forefront TMG перенаправляет этот билет компьютеру, на котором выполняется целевая служба. Тот, в свою очередь, может использовать его для запроса билетов службы для данной целевой службы или запроса новых билетов для других служб.

KDC выдает билет предоставления билета, только если для учетной записи, под которой выполняется запрашиваемая служба, в Active Directory установлен контрольный флаг ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION. Данный флаг устанавливается автоматически при настройке учетной записи в качестве доверенной для делегирования в Active Directory. Для Forefront TMG эта учетная запись представляет собой учетную запись компьютера Forefront TMG, запрашивающего билет предоставления билета.

Примечание.
Доступ к целевой службе посредством билета ограничен доступом, предоставленным пользователю, от имени которого был получен билет службы.

При использовании ограниченного делегирования Kerberos учетные данные делегируются опубликованному серверу при каждом запросе.

Если проверку подлинности пройти не удается, Forefront TMG передает пользователю сообщение об ошибке с сервера. Если серверу требуются учетные данные иного типа, выдается оповещение Forefront TMG.

Настройка ограниченного делегирования Kerberos

Для использования ограниченного делегирования Kerberos в целях проверки подлинности пользователей на веб-сервере, опубликованном с помощью Forefront TMG, должны быть выполнены следующие условия.

  • Сервер Forefront TMG, опубликованный веб-сервер или участник опубликованной фермы серверов, контроллер домена, выдающий билеты службы Kerberos, а также все остальные компьютеры, например внутренние серверы, которым передаются билеты службы Kerberos, должны являться членами одного домена Active Directory. Forefront TMG не поддерживает междоменное доверие или доверие между лесами, что делает невозможным включение дополнительных доменов Active Directory при использовании ограниченного делегирования Kerberos.

  • Домен должен быть настроен на режим работы Windows Server 2003 или Windows Server 2008.

    Примечание.
    По умолчанию домен Windows Server 2003 настроен на режим работы Windows 2000.
  • Пользователь, направляющий запрос, должен иметь учетную запись пользователя Active Directory в этом домене или ином домене в пределах локального леса. Рассмотрение возможности включения пользователей, относящихся к другим лесам, выходит за рамки данного документа.

  • Имя участника-службы для целевой службы на веб-сервере должно быть зарегистрировано под учетной записью Windows, от имени которой эта служба запущена. Регистрация имени участника службы может выполняться автоматически самой службой либо вручную администратором с помощью средства Setspn.exe для Windows Server 2003.

  • Учетная запись компьютера Forefront TMG должна быть настроена в Active Directory в качестве доверенной для ограниченного делегирования Kerberos и ограничена именем участника-службы, определяющим целевую службу на опубликованном веб-сервере. Для этого в свойствах учетной записи компьютера в оснастке «Active Directory - пользователи и компьютеры» необходимо выбрать параметр «Этот компьютер доверенный для делегирования указанных служб» и определить целевую службу на опубликованном веб-сервере в качестве службы, которой данная учетная запись может предоставлять делегированные учетные данные.

    Примечание.
    Если безопасность сервера Forefront TMG оказывается нарушенной при включении ограниченного делегирования Kerberos, злоумышленник может олицетворить любого пользователя домена и запросить билеты службы для любой службы, указанной в Active Directory как служба, которой могут быть предоставлены делегированные учетные данные. Поэтому имена участников-служб следует определять только для серверов, опубликованных с помощью Forefront TMG.
  • Для включения обмена протокола учетная запись компьютера Forefront TMG также должна быть настроена в Active Directory на разрешение ограниченного делегирования Kerberos для любого протокола проверки подлинности. Для этого в свойствах учетной записи компьютера в оснастке «Active Directory - пользователи и компьютеры» необходимо выбрать параметр «Использовать любой протокол проверки подлинности».

  • На веб-сервере должна быть настроена поддержка встроенной проверки подлинности, включающей проверку подлинности Kerberos, для виртуального каталога, к которому посылаются запросы.

  • Необходимо создать веб-прослушиватель, использующий метод проверки подлинности пользователей с использованием метода проверки Windows (Active Directory), и правило веб-публикации, настроенное на использование ограниченного делегирования Kerberos для делегирования проверки подлинности опубликованному серверу.

  • Проверка подлинности с использованием SSL-сертификатов клиента требует развертывания инфраструктуры открытого ключа (PKI) для выдачи сертификатов клиента и сопоставления их с учетными записями пользователей в Active Directory, установки корневого сертификата центра сертификации, выдающего SSL-сертификаты клиента на сервере Forefront TMG, и установки SSL-сертификата клиента с именем, по которому пользователи получают доступ к опубликованному веб-узлу на сервере Forefront TMG. Дополнительные сведения о развертывании сертификатов см. в статье «Outlook Web Access Server Publishing in ISA Server 2004: Client Certificates and Forms-based Authentication» (Публикация сервера веб-клиента Outlook в ISA Server 2004: сертификаты клиента и проверка подлинности на основе форм) на веб-узле Microsoft TechNet.

В Forefront TMG имя участника-службы используется для запроса билета службы Kerberos, если для правила веб-публикации настроено использование ограниченного делегирования Kerberos. По умолчанию в поле «Управление Forefront TMG» на вкладке «Делегирование проверки подлинности» окна свойств правила публикации в сети для отдельного веб-сервера указано имя службы-участника «http/имя_внутреннего_узла», а для фермы серверов указано имя службы-участника «http/*». Это имя службы-участника должно соответствовать имени, указанному на вкладке «Делегирование» в свойствах учетной записи компьютера Forefront TMG в оснастке «Active Directory - пользователи и компьютеры».

В Microsoft Exchange Server 2003 службы IIS используют учетную запись «Сетевая служба». Для опубликованных серверов Exchange Forefront TMG использует имя участника-службы, состоящее из класса службы http и внутреннего имени узла для отдельного сервера Exchange или подстановочного символа (*) для фермы серверов Exchange.

Примечание.
Проверка подлинности Kerberos выполняется с помощью UDP-пакетов. Они часто фрагментируются. Если сервер Forefront TMG находится в домене и включено блокирование IP-фрагментов, проверка подлинности Kerberos будет невозможна. При использовании проверки подлинности Kerberos не рекомендуется включать блокирование пакетов, содержащих IP-фрагменты.

SharePoint Portal Server 2003 по умолчанию отключает протокол Kerberos, поэтому при публикации SharePoint использование ограниченного делегирования Kerberos и NTLM/Kerberos (Negotiate) невозможно. Чтобы включить протокол Kerberos, следуйте инструкциям в следующей статье базы знаний Майкрософт: 832769, «How to configure a Windows SharePoint Services virtual server to use Kerberos authentication and how to switch from Kerberos authentication back to NTLM authentication» (как настроить виртуальный сервер Windows SharePoint Services на использование проверки подлинности Kerberos и как переключить проверку подлинности Kerberos обратно на NTLM).