WS-Trust
WS-Trust — это расширение семейства веб-служб (WS-*), определяющее протокол обмена, запроса и выдачи маркеров безопасности (security tokens) в распределённых системах. Стандарт разработан комитетом OASIS (Organization for the Advancement of Structured Information Standards) и является частью спецификации WS-Security. WS-Trust позволяет сторонам, участвующим в веб-службах, получать доверенные маркеры от служб безопасности (Security Token Service, STS) для аутентификации и авторизации, а также обновлять, проверять и делегировать их.
История и развитие
Спецификация WS-Trust была впервые опубликована в 2004 году как часть набора стандартов WS-*, разработанных IBM, Microsoft, VeriSign и другими компаниями. Основной целью было создание универсального протокола для работы с маркерами безопасности, который не зависел бы от конкретных типов маркеров (например, X.509, SAML, Kerberos). В 2007 году OASIS выпустил версию 1.3, которая стала финальной и наиболее широко используемой. В 2009 году спецификация была дополнена профилем WS-Trust 1.4, уточняющим некоторые аспекты, но не внёсшим кардинальных изменений.
Стандарт активно применялся в корпоративных решениях, таких как Microsoft Active Directory Federation Services (AD FS), IBM Tivoli Federated Identity Manager, а также в продуктах для управления идентификацией и доступом (IAM). С развитием RESTful-архитектур и протокола OAuth 2.0, популярность WS-Trust снизилась, однако он остаётся востребованным в унаследованных (legacy) системах и сценариях, где требуется строгая совместимость с WS-*.
Основные понятия
Маркер безопасности (Security Token)
Маркер безопасности — это набор утверждений (claims) о субъекте (пользователе, службе, устройстве), подписанный доверенным эмитентом. Примеры: SAML-ассертация, сертификат X.509, билет Kerberos. В контексте WS-Trust маркеры могут быть как стандартными, так и пользовательскими.
Служба маркеров безопасности (STS)
STS — это веб-служба, реализующая протокол WS-Trust. Она принимает запросы на получение маркеров, проверяет подлинность запрашивающей стороны и выдаёт новый маркер, содержащий необходимые утверждения. STS может быть как централизованной (например, в корпоративной сети), так и федеративной (объединяющей несколько доменов).
Доверие (Trust)
В WS-Trust доверие устанавливается между STS и клиентом, а также между различными STS. Протокол определяет механизмы для установления и обновления доверия, включая обмен ключами и проверку подписей.
Архитектура и протокол
Сообщения WS-Trust
Протокол основан на обмене SOAP-сообщениями, которые содержат заголовки WS-Security и тело с запросом или ответом. Основные типы сообщений:
- RequestSecurityToken (RST) — запрос на получение маркера.
- RequestSecurityTokenResponse (RSTR) — ответ, содержащий запрошенный маркер или ошибку.
- RequestSecurityTokenCollection (RSTC) — запрос на получение нескольких маркеров.
- RequestSecurityTokenResponseCollection (RSTRC) — ответ с набором маркеров.
Основные операции
WS-Trust определяет четыре ключевые операции:
- Issue — выдача нового маркера. Клиент отправляет RST, содержащий сведения о запрашиваемом типе маркера, утверждениях и доверии. STS проверяет подлинность и выдаёт RSTR с маркером.
- Renew — обновление существующего маркера. Используется, когда срок действия маркера истекает, а сессия продолжается.
- Validate — проверка действительности маркера. STS может подтвердить, что маркер не отозван и соответствует требованиям.
- Cancel — отзыв маркера. Применяется для завершения сессии или аннулирования компрометированного маркера.
Обмен ключами
Для обеспечения конфиденциальности и целостности, WS-Trust поддерживает несколько механизмов обмена ключами:
- Public Key — использование открытых ключей (например, сертификатов X.509).
- Symmetric Key — симметричные ключи, обмениваемые через протоколы, такие как Kerberos.
- Bearer — маркеры, не требующие ключей (например, SAML-ассертации с утверждением о владельце).
Применение
Федеративная идентификация
WS-Trust является основой для федеративных систем, где пользователь аутентифицируется в одном домене (IdP — Identity Provider), а затем получает маркер для доступа к ресурсам в другом домене (SP — Service Provider). Например, в корпоративной среде сотрудник может войти в систему через AD FS, а затем получить доступ к облачным приложениям, таким как Microsoft 365, используя выданный маркер.
Active Directory Federation Services (AD FS)
Microsoft AD FS (организация признана иноагентом в РФ) реализует протокол WS-Trust для выдачи SAML-маркеров. В Windows Server AD FS используется для единого входа (SSO) в приложения, поддерживающие WS-Trust, включая SharePoint, Dynamics CRM и сторонние веб-сервисы.
Управление идентификацией в облаке
Некоторые облачные платформы, такие как Microsoft Azure, поддерживают WS-Trust для интеграции с локальными STS. Например, Azure Active Directory Federation Services (Azure AD FS) позволяет использовать WS-Trust для аутентификации пользователей из локального каталога.
Критика и ограничения
Сложность реализации
WS-Trust требует поддержки SOAP, WS-Security и сложной обработки XML-сообщений. Это делает реализацию ресурсоёмкой и подверженной ошибкам, особенно в современных микросервисных архитектурах.
Зависимость от XML
Протокол жёстко привязан к XML, что снижает производительность по сравнению с JSON-основанными протоколами, такими как OAuth 2.0. Кроме того, обработка XML-подписей и шифрования требует дополнительных вычислительных ресурсов.
Снижение популярности
С распространением RESTful API и OAuth 2.0, WS-Trust постепенно вытесняется. OAuth 2.0 проще в реализации, не требует SOAP и поддерживает более широкий спектр устройств, включая мобильные и веб-приложения. Однако в унаследованных корпоративных системах WS-Trust остаётся стандартом де-факто.
Безопасность
Угрозы
Как и любой протокол аутентификации, WS-Trust подвержен ряду атак:
- Перехват маркеров — если маркер передаётся без шифрования, злоумышленник может его перехватить.
- Подделка маркеров — если STS не проверяет подлинность запроса, возможна выдача поддельных маркеров.
- Отказ в обслуживании (DoS) — злоумышленник может отправлять множество запросов на выдачу маркеров, перегружая STS.
Меры защиты
Для минимизации рисков применяются:
- Шифрование сообщений с помощью WS-Security и TLS.
- Подписание маркеров цифровыми подписями.
- Ограничение времени жизни маркеров (TTL).
- Логирование и мониторинг запросов к STS.
Совместимость с другими стандартами
WS-Trust тесно связан с другими спецификациями WS-*:
- WS-Security — определяет, как маркеры встраиваются в SOAP-сообщения.
- WS-Policy — описывает требования к маркерам и STS.
- WS-Federation — расширяет WS-Trust для федеративных сценариев, добавляя механизмы обмена метаданными и управления доверием.
Также WS-Trust может использоваться совместно с SAML 2.0, где SAML-ассертации выступают в качестве маркеров, а STS является эмитентом.
Примеры реализации
Microsoft AD FS
В AD FS WS-Trust используется для выдачи SAML-маркеров. Клиент (например, веб-приложение) отправляет RST на STS AD FS, который проверяет учётные данные пользователя (например, пароль или сертификат) и возвращает RSTR с SAML-ассертацией. Эта ассертация затем используется для доступа к ресурсам.
IBM Tivoli Federated Identity Manager
IBM Tivoli поддерживает WS-Trust для интеграции с различными STS, включая собственные и сторонние. Решение позволяет централизованно управлять маркерами и утверждениями в крупных корпоративных сетях.
OpenAM
OpenAM (ранее OpenSSO) — это открытое решение для управления идентификацией, которое поддерживает WS-Trust. Оно может выступать как STS, выдавая маркеры для приложений, использующих WS-Trust.
Будущее протокола
Несмотря на снижение популярности, WS-Trust продолжает использоваться в legacy-системах, особенно в государственных и финансовых учреждениях, где требуется высокая степень совместимости с существующей инфраструктурой. В новых проектах чаще применяются OAuth 2.0, OpenID Connect и SAML 2.0, которые проще и легче интегрируются с современными архитектурами. Однако WS-Trust остаётся важным элементом истории стандартов безопасности веб-служб.
Источники
- OASIS Standard: WS-Trust 1.3, 2007.
- Microsoft: Active Directory Federation Services (AD FS) Overview.
- IBM: Tivoli Federated Identity Manager Documentation.
- OpenAM Project Documentation.
- «Web Services Security: SOAP Message Security 1.1» (WS-Security 2004).
- «Federated Identity Management with WS-Trust» — Technical Report, 2006.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →