Служба Служба c2WTS (Claims to Windows Token Service) является компонентом платформы Windows® Identity Foundation (WIF) и извлекает UPN-утверждения из маркеров безопасности, отличных от Windows, таких как SAML и X.509, и создает маркеры безопасности Windows уровня олицетворения. Это позволяет приложению проверяющей стороны выполнять олицетворение пользователя. Оно может требоваться для доступа к серверным ресурсам, например базам данных SQL Server, находящимся на внешнем компьютере по отношению к компьютеру, на котором выполняется приложение проверяющей стороны.
c2WTS — это служба Windows, которая устанавливается в составе WIF. Однако по причинам безопасности c2WTS используется исключительно по желанию. Служба запускается вручную и выполняется с локальной системной учетной записью. Кроме того, администратор должен вручную задать для c2WTS список разрешенных вызывающих сторон. По умолчанию этот список пуст. Дополнительные сведения см. в разделе Инструкции: запрос маркера в c2WTS. WIF вызывает c2WTS с помощью IPC, и c2WTS не открывает никаких сетевых портов.
Если приложение проверяющей стороны запускается с локальной системной учетной записью, ему не нужно использовать c2WTS. Однако если приложение проверяющей стороны запускается с учетной записью сетевой службы или является приложением ASP.NET, ему может потребоваться использовать c2WTS для доступа к ресурсам другого компьютера.
Предположим, имеется веб-ферма, состоящая из сервера, на котором запускается приложение ASP.NET, которое обращается к базе данных SQL на фоновом сервере. Необходимо, чтобы это приложение поддерживало утверждения. Однако приложение не может обращаться к базе данных SQL с использованием утверждения, которое оно получает от службы STS. Вместо этого оно использует c2WTS для преобразования UPN-утверждения в маркер безопасности Windows. Это позволяет ему обращаться к базе данных SQL как раньше.
(Обратите внимание: чтобы разрешить приложению обращаться к ресурсам на другом сервере, администратор домена должен включить в Active Directory ограниченное делегирование. Дополнительные сведения о включении ограниченного делегирования см. в разделе Инструкции: использование перехода протокола и ограниченного делегирования в ASP.NET 2.0.)
Примечание. |
---|
Если служба c2WTS включена и для привязки задан защищенный диалог в режиме Cookie, c2WTS будет использоваться для воссоздания удостоверения Windows из UPN-имени, которое сериализовано в файле Cookie защищенного диалога. Это означает, что проверка подлинности может завершиться сбоем при переключении между защищенным диалогом в режиме Cookie и в режиме сеанса, если служба c2WTS включена, но неправильно настроена. |
Как использовать c2WTS для получения маркера безопасности Windows
Существует два способа использования c2WTS: через
mapToWindows или через вызов метода UpnLogon по требованию.
Если приложению постоянно требуются маркеры безопасности Windows
уровня олицетворения, то можно включить свойство
mapToWindows
атрибута
samlSecurityTokenRequirement
в элементе
<securityTokenHandlers>
. С другой стороны, если
маркеры безопасности Windows уровня олицетворения требуются
приложению только в определенных случаях, то можно программно
вызывать метод UpnLogon при необходимости. Имейте в виду,
что для успешного вызова этого метода свойство
useWindowsTokenService
должно иметь значение true и
должна быть добавлена конфигурация c2WTS с соответствующим списком
вызывающих сторон.
WIF предоставляет метод UpnLogon, который может вызывать приложение проверяющей стороны, передавая UPN-утверждение, полученное из службы STS. Затем WIF вызывает локальную службу c2WTS с помощью IPC. UpnLogon возвращает удостоверение WindowsIdentity, которое представляет пользователя. На следующем рисунке показан принцип действия.
- Запрос клиента поступает в приложение проверяющей стороны. Для
обработки этого запроса проверяющей стороне требуется доступ к
внешнему ресурсу. Для этого приложение проверяющей стороны должно
выполнить олицетворение пользователя.
- Приложение проверяющей стороны перенаправляет клиента на службу
STS поставщика удостоверений для проверки подлинности.
- Служба STS поставщика удостоверений выполняет проверку
подлинности пользователя и выпускает маркер SAML с UPN-утверждением
(утверждение типа
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
). Обратите внимание, что службе c2WTS требуется строка UPN для выполнения операций.
- Клиент отправляет маркер SAML приложению проверяющей
стороны.
- Приложение проверяющей стороны проверяет маркер SAML и
извлекает UPN-утверждение.
- Приложение проверяющей стороны передает UPN-утверждение методу
UpnLogon в качестве параметра, а метод возвращает маркер
безопасности Windows. Этот метод автоматически вызывается
обработчиками маркеров безопасности (SecurityTokenHandlers) SAML
1.1 и SAML 2, если свойству mapToWindows объекта
SamlSecurityTokenRequirement этих обработчиков и параметру
useWindowsTokenService элемента <windowsClaimsIdentity> в
<microsoft.IdentityModel> присвоено значение true.
- Приложение проверяющей стороны использует удостоверение Windows
для олицетворения пользователя и доступа к ресурсу.