Общие сведения о службе c2WTS (Claims to Windows Token Service)

Служба является компонентом платформы Windows® Identity Foundation (WIF) и извлекает UPN-утверждения из маркеров безопасности, отличных от Windows, таких как SAML и X.509, и создает маркеры безопасности Windows уровня олицетворения. Это позволяет приложению проверяющей стороны выполнять олицетворение пользователя. Оно может требоваться для доступа к серверным ресурсам, например базам данных SQL Server, находящимся на внешнем компьютере по отношению к компьютеру, на котором выполняется приложение проверяющей стороны.

— это служба Windows, которая устанавливается в составе WIF. Однако по причинам безопасности используется исключительно по желанию. Служба запускается вручную и выполняется с локальной системной учетной записью. Кроме того, администратор должен вручную задать для список разрешенных вызывающих сторон. По умолчанию этот список пуст. Дополнительные сведения см. в разделе Инструкции: запрос маркера в c2WTS. WIF вызывает с помощью IPC, и не открывает никаких сетевых портов.

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

Предположим, имеется веб-ферма, состоящая из сервера, на котором запускается приложение ASP.NET, которое обращается к базе данных SQL на фоновом сервере. Необходимо, чтобы это приложение поддерживало утверждения. Однако приложение не может обращаться к базе данных SQL с использованием утверждения, которое оно получает от службы STS. Вместо этого оно использует для преобразования UPN-утверждения в маркер безопасности Windows. Это позволяет ему обращаться к базе данных SQL как раньше.

(Обратите внимание: чтобы разрешить приложению обращаться к ресурсам на другом сервере, администратор домена должен включить в Active Directory ограниченное делегирование. Дополнительные сведения о включении ограниченного делегирования см. в разделе Инструкции: использование перехода протокола и ограниченного делегирования в ASP.NET 2.0.)

Примечание

Если служба включена и для привязки задан защищенный диалог в режиме Cookie, будет использоваться для воссоздания удостоверения Windows из UPN-имени, которое сериализовано в файле Cookie защищенного диалога. Это означает, что проверка подлинности может завершиться сбоем при переключении между защищенным диалогом в режиме Cookie и в режиме сеанса, если служба включена, но неправильно настроена.

Как использовать c2WTS для получения маркера безопасности Windows

Существует два способа использования : через mapToWindows или через вызов метода UpnLogon по требованию. Если приложению постоянно требуются маркеры безопасности Windows уровня олицетворения, то можно включить свойство mapToWindows атрибута samlSecurityTokenRequirement в элементе <securityTokenHandlers>. С другой стороны, если маркеры безопасности Windows уровня олицетворения требуются приложению только в определенных случаях, то можно программно вызывать метод UpnLogon при необходимости. Имейте в виду, что для успешного вызова этого метода свойство useWindowsTokenService должно иметь значение true и должна быть добавлена конфигурация с соответствующим списком вызывающих сторон.

WIF предоставляет метод UpnLogon, который может вызывать приложение проверяющей стороны, передавая UPN-утверждение, полученное из службы STS. Затем WIF вызывает локальную службу с помощью IPC. UpnLogon возвращает удостоверение WindowsIdentity, которое представляет пользователя. На следующем рисунке показан принцип действия.

e6a9def2-c55f-427c-a30f-1a4d8d299191

  1. Запрос клиента поступает в приложение проверяющей стороны. Для обработки этого запроса проверяющей стороне требуется доступ к внешнему ресурсу. Для этого приложение проверяющей стороны должно выполнить олицетворение пользователя.

  2. Приложение проверяющей стороны перенаправляет клиента на службу STS поставщика удостоверений для проверки подлинности.

  3. Служба STS поставщика удостоверений выполняет проверку подлинности пользователя и выпускает маркер SAML с UPN-утверждением (утверждение типа https://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn). Обратите внимание, что службе требуется строка UPN для выполнения операций.

  4. Клиент отправляет маркер SAML приложению проверяющей стороны.

  5. Приложение проверяющей стороны проверяет маркер SAML и извлекает UPN-утверждение.

  6. Приложение проверяющей стороны передает UPN-утверждение методу UpnLogon в качестве параметра, а метод возвращает маркер безопасности Windows. Этот метод автоматически вызывается обработчиками маркеров безопасности (SecurityTokenHandlers) SAML 1.1 и SAML 2, если свойству mapToWindows объекта SamlSecurityTokenRequirement этих обработчиков и параметру useWindowsTokenService элемента <windowsClaimsIdentity> в <microsoft.IdentityModel> присвоено значение true.

  7. Приложение проверяющей стороны использует удостоверение Windows для олицетворения пользователя и доступа к ресурсу.