Безопасность в WCF на самом деле состоит из нескольких функций .Разница между этими двумя заключается в том, как сообщения подписываются и шифруются.
Транспортная безопасность обеспечивает безопасность только двухточечного канала.Это означает, что HTTPS устанавливает безопасный канал только между клиентом и сервером, доступным клиенту.Но если этот сервер является просто балансировщиком нагрузки или обратным прокси-сервером, он имеет прямой доступ к содержимому сообщения.
Защита сообщений обеспечивает сквозную безопасность канала.Это означает, что безопасность является частью передаваемых данных, и только предполагаемый пункт назначения может расшифровать данные (балансировщик нагрузки или прокси-сервер видит только зашифрованное сообщение).Безопасность сообщений в большинстве случаев также использует сертификаты для обеспечения шифрования и подписи, но обычно она медленнее, поскольку безопасность транспорта может использовать ускорение HW.
В сложных сценариях эти методы можно комбинировать.Например, вы можете установить связь с балансировщиком нагрузки по протоколу HTTPS, поскольку доверяете своей внутренней сети после балансировщика нагрузки, но в то же время вы можете подписать сообщение (безопасность сообщения), чтобы доказать, что оно не изменилось.
Другое различие между этими двумя заключается в том, что безопасность транспорта связана с единым транспортным протоколом, тогда как безопасность сообщений не зависит от транспортного протокола.
Безопасность сообщений основана на совместимых протоколах (но следует помнить, что не каждая конфигурация в WCF совместима).WCF поддерживает, по крайней мере, частично эти протоколы:
- WS-Security 1.0 и 1.1 - основные правила для шифрования, подписи, передачи токена, временных отметок и т. Д.
- UserName token profile 1.0 - определениетокена, используемого для передачи имени пользователя и пароля.Эта спецификация реализована только частично, потому что WCF из коробки не поддерживает переваренный пароль и требует использования этого токена либо с транспортом, либо с шифрованием сообщений.
- Профиль токена X509 1.1 - определение токена, используемого для транспортировки сертификатов.
- Профиль токена Kerberos 1.1 - определение токена, используемого для транспортировки билетов Kerberos.
- Профиль токена SAML 1.1 1.0 и 1.1 - определение токена, используемого для федеративной безопасности.SAML 2.0 предоставляется WIF.
- WS-SecurityPolicy 1.1 и 1.2 - предоставляет поддержку для определения утверждения безопасности в WSDL.
- WS-SecureConversation 1.3 и февраль 2005 г. - обеспечивает поддержку сеанса безопасности, гдеучетные данные обмениваются только во время первого вызова, а остальная часть связи использует уникальный токен безопасности.
- WS-Trust 1.3 и февраль 2005 г. - обеспечивает поддержку федеративных сценариев и служб токенов безопасности (STS).
WCF также поддерживает WS-I Basic Security Profile 1.0, который является лишь подмножеством прежних протоколов с заданной конфигурацией.
Для не совместимых функций WCF предлагает такие функции, как безопасность Windows или TLSNego и SPNego (обычно обасовместимы, но их нет во многих стеках SOAP) для обмена учетными данными службы.