Ответ 1
Безопасность в WCF фактически состоит из нескольких функций. Разница между этими двумя заключается в том, как сообщения, подписанные и зашифрованные.
Безопасность транспорта обеспечивает только двухточечную защиту канала. Это означает, что HTTPS устанавливает безопасный канал только между клиентом и сервером, подверженным клиенту. Но если этот сервер просто балансировщик нагрузки или обратный прокси-сервер, он имеет прямой доступ к содержимому сообщения.
Безопасность сообщений обеспечивает сквозную защиту канала. Это означает, что безопасность является частью переданных данных, и только предназначенный адресат может расшифровать данные (балансировщик нагрузки или прокси видит только зашифрованное сообщение). Безопасность сообщений в большинстве случаев также использует сертификаты для обеспечения шифрования и подписи, но обычно она медленнее, поскольку безопасность транспорта может использовать ускорение HW.
В расширенных сценариях эти методы могут комбинироваться. Например, у вас может быть связь с вашим балансиром нагрузки, защищенным HTTPS, потому что вы доверяете своей внутренней сети после балансировки нагрузки, но в то же время вы можете подписаться на сообщение (безопасность сообщений), чтобы вы могли доказать, что он не был изменен.
Еще одно различие между этими двумя заключается в том, что транспортная безопасность связана с единственным транспортным протоколом, тогда как безопасность сообщений независима от транспортного протокола.
Безопасность сообщений основана на совместимых протоколах (но имейте в виду, что не каждая конфигурация WCF совместима). WCF поддерживает по крайней мере частично эти протоколы:
- WS-Security 1.0 и 1.1 - основные правила шифрования, подписи, переноса токенов, временных меток и т.д.
- Профиль токена UserName 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 и Feb. 2005 - обеспечивает поддержку сеанса безопасности, в котором учетные данные обмениваются только во время первого вызова, а остальная часть связи использует уникальный токен безопасности.
- WS-Trust 1.3 и февраль 2005 - обеспечивает поддержку федеративных сценариев и служб маркеров безопасности (STS).
WCF также поддерживает WS-I Basic Security Profile 1.0, который является просто подмножеством прежних протоколов с заданной конфигурацией.
Для несовместимых функций WCF предлагает такие функции, как защита Windows или TLSNego и SPNego (оба должны быть в целом совместимы, но они недоступны во многих пакетах SOAP) для обмена учетными данными службы.