Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляемые системой привязки, включенные в Windows Communication Foundation (WCF), позволяют быстро программировать приложения WCF. За исключением одного исключения, все привязки включают схему безопасности по умолчанию. В этом разделе вы можете выбрать правильную привязку для ваших потребностей в безопасности.
Общие сведения о безопасности WCF см. в разделе "Обзор безопасности". Дополнительные сведения о программировании WCF с помощью привязок см. в разделе "Программирование WCF Security".
Если вы уже выбрали привязку, вы можете узнать больше о поведении во время выполнения, связанном с безопасностью, в разделе Поведение безопасности.
Некоторые функции безопасности не программируются с помощью привязок, предоставляемых системой. Дополнительные сведения об использовании пользовательской привязки см. в разделе "Возможности безопасности" с пользовательскими привязками.
Функции безопасности привязок
WCF включает ряд системных привязок, удовлетворяющих большинству потребностей. Если определенная привязка недостаточна, можно также создать пользовательскую привязку. Список системных привязок см. в разделеSystem-Provided Привязки. Дополнительные сведения о пользовательских привязках см. в разделе "Пользовательские привязки".
Каждая привязка в WCF имеет две формы: как API и в качестве XML-элемента, используемого в файле конфигурации. Например, api WSHttpBinding
имеет аналог wsHttpBinding<>.
В следующем разделе перечислены обе формы для каждой привязки и сводка функций безопасности.
BasicHttp
В коде используйте класс BasicHttpBinding; а в конфигурации — <basicHttpBinding>.
Эта привязка предназначена для использования с несколькими существующими технологиями, включая следующие:
ASP.NET веб-службы (ASMX), версия 1.
Приложения улучшения веб-службы (WSE).
Базовый профиль, определенный в спецификации взаимодействия веб-служб (WS-I) (https://go.microsoft.com/fwlink/?LinkId=38955).
Базовый профиль безопасности, определенный в WS-I.
По умолчанию эта привязка не является безопасной. Он предназначен для взаимодействия со службами ASMX. Если безопасность включена, привязка предназначена для простого взаимодействия с механизмами безопасности служб IIS, такими как обычная проверка подлинности, дайджест и встроенная безопасность Windows. Дополнительные сведения см. в разделе "Обзор безопасности транспорта". Эта привязка поддерживает следующее:
Безопасность транспорта HTTPS.
Базовая аутентификация HTTP.
WS-Security.
Дополнительные сведения см. в разделе BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialType, и BasicHttpSecurityMode.
WSHttpBinding
В коде используйте класс WSHttpBinding; в конфигурации используйте <wsHttpBinding>.
По умолчанию эта привязка реализует спецификацию WS-Security и обеспечивает взаимодействие со службами, реализующими спецификации WS-* . Он поддерживает следующее:
Безопасность транспорта HTTPS.
WS-Security.
Защита транспорта HTTPS с использованием безопасности учетных данных SOAP-сообщения для проверки подлинности вызывающего клиента.
Дополнительные сведения см. в разделе WSHttpSecurity, , MessageSecurityOverHttpMessageCredentialTypeSecurityMode, , HttpTransportSecurity, HttpClientCredentialTypeи HttpProxyCredentialType.
WSDualHttpBinding (ВСДуалHttpБиндинг)
В коде используйте класс WSDualHttpBinding; в конфигурации используйте <wsDualHttpBinding>.
Эта привязка предназначена для использования двусторонних служебных приложений. Эта привязка реализует спецификацию WS-Security для безопасности передачи на основе сообщений. Услуги транспортной безопасности недоступны. По умолчанию он предоставляет следующие функции:
Реализует обмен сообщениями WS-Reliable для повышения надежности.
Реализует WS-Security для обеспечения безопасности передачи данных и аутентификации.
Использует HTTP для доставки сообщений.
Использует кодировку текстовых и XML-сообщений.
С помощью WS-Security (безопасность уровня сообщений) привязка позволяет настроить следующие параметры:
Набор алгоритмов безопасности для определения криптографического алгоритма.
Параметры привязки для следующих элементов:
Предоставление учетных данных для доступа к службе, доступных вне основного канала на стороне клиента.
Предоставление учетных данных, согласованных со службой, как часть настройки канала.
Дополнительные сведения см. в разделах WSDualHttpSecurity и WSDualHttpSecurityMode.
NetTcpBinding
В коде используйте класс NetTcpBinding; в конфигурации используйте <netTcpBinding>.
Эта привязка оптимизирована для обмена данными между компьютерами. По умолчанию он имеет следующие характеристики:
Реализует безопасность на уровне транспорта.
Использует систему безопасности Windows для защиты передачи данных и аутентификации.
Использует TCP для транспорта.
Реализует кодировку двоичных сообщений.
Реализует WS-Reliable обмен сообщениями.
Ниже приведены варианты.
Безопасность уровня сообщений (используя WS-Security).
Безопасность транспорта с учетными данными сообщения — конфиденциальность и целостность, предоставляемая протоколом TLS по протоколу TCP, и учетные данные для авторизации, предоставляемой WS-Security.
Дополнительные сведения см. в разделе NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcpи MessageCredentialType.
NetNamedPipeBinding
В коде используйте класс NetNamedPipeBinding; в конфигурации используйте <netNamedPipeBinding>.
Эта привязка оптимизирована для межпроцессного взаимодействия (обычно на одном компьютере). По умолчанию эта привязка имеет следующие характеристики:
Использует транспортную безопасность для передачи сообщений и проверки подлинности.
Использует именованные каналы для доставки сообщений.
Реализует кодировку двоичных сообщений.
Шифрование и подпись сообщений.
Ниже приведены варианты.
- Проверка подлинности с помощью безопасности Windows.
Дополнительные сведения см. в статьях NetNamedPipeSecurity, NetNamedPipeSecurityMode и NamedPipeTransportSecurity.
MsmqIntegrationBinding
В коде используйте MsmqIntegrationBinding класс; в конфигурации используйте <msmqIntegrationBinding>.
Эта привязка оптимизирована для создания клиентов и служб WCF, которые взаимодействуют с конечными точками очереди сообщений (MSMQ), отличными от WCF.
По умолчанию эта привязка использует транспортную безопасность и предоставляет следующие характеристики безопасности:
Безопасность может быть отключена (Нет).
Безопасность транспорта MSMQ (транспорт).
Дополнительные сведения см. в разделах NetMsmqSecurity и NetMsmqSecurityMode.
NetMsmqBinding
В коде используйте класс NetMsmqBinding; в конфигурации используйте <netMsmqBinding>.
Эта привязка предназначена для использования при создании служб WCF, требующих поддержки сообщений в очереди MSMQ.
По умолчанию эта привязка использует транспортную безопасность и предоставляет следующие характеристики безопасности:
Безопасность может быть отключена (Нет).
Безопасность транспорта MSMQ (транспорт).
Безопасность сообщений на основе SOAP (сообщение).
Одновременная безопасность транспорта и сообщений (оба).
Поддерживаемые типы учетных данных клиента: None, Windows, UserName, Certificate, IssuedToken.
Учетные данные Certificate поддерживаются только когда режим безопасности установлен на Both или Message.
Дополнительные сведения см. в разделах MessageSecurityOverMsmq и MsmqTransportSecurity.
WSFederationHttpBinding
В коде используйте класс WSFederationHttpBinding; в конфигурации используйте <wsFederationHttpBinding>.
По умолчанию эта привязка использует WS-Security (безопасность на уровне сообщений).
Дополнительные сведения см. в разделе "Федерация" WSFederationHttpSecurityи WSFederationHttpSecurityMode.
Пользовательские привязки
Если ни одна из предоставленных системой привязок не соответствует требованиям, можно создать пользовательскую привязку с пользовательским элементом привязки безопасности. Дополнительные сведения см. в разделе "Возможности безопасности с пользовательскими привязками".
Варианты привязки
В следующей таблице приведены сведения о функциях, предлагаемых в параметре режима безопасности, т. е. в нем перечислены доступные функции, если для режима безопасности задано Transport
значение , Message
или TransportWithMessageCredential
. Используйте эту таблицу для поиска необходимых функций безопасности приложения.
Настройки | Функции |
---|---|
Транспорт | Аутентификация сервера Аутентификация клиента Безопасность "точка — точка" Совместимость Аппаратное ускорение Высокая пропускная способность Безопасный брандмауэр Приложения с высокой задержкой Повторное шифрование через несколько узлов |
Сообщение | Аутентификация сервера Аутентификация клиента Комплексная безопасность Совместимость Расширенные утверждения Федерация Многофакторная проверка подлинности Пользовательские токены Нотариальная служба/служба временной метки Приложения с высокой задержкой Сохраняемость подписей сообщений |
ТранспортСУчётнымиДаннымиСообщения | Аутентификация сервера Аутентификация клиента Безопасность "точка — точка" Совместимость Аппаратное ускорение Высокая пропускная способность Расширенные утверждения клиента Федерация Многофакторная проверка подлинности Пользовательские токены Безопасный брандмауэр Приложения с высокой задержкой Повторное шифрование через несколько узлов |
В следующей таблице перечислены привязки, поддерживающие различные параметры режима. Выберите привязку из таблицы, чтобы создать конечную точку службы.
Привязка | Поддержка режима транспорта | Поддержка режима сообщения | Поддержка функции TransportWithMessageCredential |
---|---|---|---|
BasicHttpBinding |
Да | Да | Да |
WSHttpBinding |
Да | Да | Да |
WSDualHttpBinding |
нет | Да | нет |
NetTcpBinding |
Да | Да | Да |
NetNamedPipeBinding |
Да | нет | нет |
NetMsmqBinding |
Да | Да | нет |
MsmqIntegrationBinding |
Да | нет | нет |
wsFederationHttpBinding |
нет | Да | Да |
Учетные данные транспорта в привязках
В следующей таблице перечислены типы учетных данных клиента, доступные при использовании либо BasicHttpBinding
, либо WSHttpBinding
в режиме транспортной безопасности.
Тип | Описание |
---|---|
Отсутствует | Указывает, что клиенту не нужно представлять учетные данные. Это переводится как анонимный клиент. |
Базовый | Обычная проверка подлинности. Дополнительные сведения см. в статье RFC 2617 — проверка подлинности HTTP: базовая и дайджест-проверка подлинности, доступные по адресу https://go.microsoft.com/fwlink/?LinkId=84023. |
дайджест | Аутентификация по дайджесту. Дополнительные сведения см. в статье RFC 2617 — проверка подлинности HTTP: базовая и дайджест-проверка подлинности, доступные по адресу https://go.microsoft.com/fwlink/?LinkId=84023. |
NTLM | Проверка подлинности NT LAN Manager (NTLM). |
Виндоус | проверка подлинности Windows. |
Сертификат | Проверка подлинности, выполненная с помощью сертификата. |
ВыданныйТокен | Позволяет службе требовать, чтобы клиент прошел аутентификацию с помощью токена, выданного службой токенов безопасности или CardSpace. Дополнительные сведения см. в разделе "Федерация" и "Выданные токены". |
Учетные данные клиента сообщения в привязках
В следующей таблице перечислены типы учетных данных клиента, доступные при использовании привязки в режиме безопасности сообщений.
Тип | Описание |
---|---|
Отсутствует | Позволяет службе взаимодействовать с анонимными клиентами. |
Виндоус | Позволяет обмениваться сообщениями SOAP в контексте учетных данных Windows, прошедших проверку подлинности. |
Имя пользователя | Позволяет службе требовать, чтобы клиент прошел проверку подлинности с помощью учетных данных имени пользователя. Обратите внимание, что если для режима безопасности задано значение TransportWithMessageCredential , WCF не поддерживает отправку хэшированного пароля или производных ключей с использованием пароля и применение таких ключей для безопасности режима сообщений. Таким образом, WCF обеспечивает защиту транспорта при использовании учетных данных имени пользователя. |
Сертификат | Позволяет службе требовать, чтобы клиент прошел проверку подлинности с помощью сертификата. |
ВыданныйТокен | Позволяет службе использовать службу токенов безопасности для предоставления пользовательского токена. |
См. также
- Обзор безопасности
- обеспечение безопасности служб и клиентов
- Выбор типа учетных данных
- Возможности безопасности с пользовательскими привязками
- Поведение безопасности
- Модель безопасности Windows Server App Fabric