Как WCF + SSL работает с балансировкой нагрузки? - PullRequest
5 голосов
/ 01 июня 2011

Если SSL обрабатывается балансировщиком нагрузки, мне все равно нужно настроить его в узле WCF serviceCertificate? Мой сценарий заключается в использовании безопасности на уровне сообщений. Если кто-то может объяснить, как работает балансировка нагрузки с помощью wcf и ssl, это было бы очень хорошо.

Ответы [ 3 ]

4 голосов
/ 01 июня 2011

Если вы хотите использовать безопасность сообщений, то каждое сообщение шифруется и подписывается отдельно - защищенного соединения нет, а балансировщик нагрузки ведет себя так же, как и любой другой транспорт HTTP.Loadbalancer не знает о безопасности и не нуждается в сертификате.

Есть две ошибки:

  • Все серверы приложений с балансировкой нагрузки, на которых размещена ваша служба WCF, должны использовать один и тот же сертификат
  • Вы должны убедиться, что привязка WCF не использует сеансы (надежные, безопасные), в противном случае вам потребуется алгоритм балансировки нагрузки с липкими сеансами (все запросы на один сеанс всегда направляются на один и тот же сервер)
4 голосов
/ 02 июня 2011

WCF требует, чтобы токены безопасности передавались по защищенному транспорту, если само сообщение не подписано / не зашифровано. Поскольку трафик является HTTP-трафиком между вашим Big-IP и вашими отдельными веб-серверами, вам нужен способ, чтобы токены безопасности, которые, как вы знаете, были защищены между клиентом и Big-IP, по-прежнему передавались вашей ферме серверов. Есть несколько способов сделать это в зависимости от того, какую версию WCF вы используете:

Если вы используете WCF 4.0, вы можете просто создать пользовательскую привязку и установить свойство AllowInsecureTransport во встроенном SecurityBindingElement, чтобы показать, что вам все равно, что транспорт не ' t безопасный.

Если вы используете WCF 3.5, вы должны «лгать» о безопасности с помощью пользовательского TransportSecurityBindingElement на стороне сервера. Вы можете прочитать мой старый пост об этом здесь .

FWIW, они создали выпуск исправлений для 3.5 SP1, который добавляет AllowInsecureTransport к этой версии, но я не знаю, позволит ли ваша компания установить пользовательские исправления.

0 голосов
/ 01 июня 2011

Это не так. Не беспокойся об этом. Вы будете в мире боли. Просто установите сертификаты на каждой машине. Мы недавно прошли через это фиаско. WCF не стоит усилий, он думает, что ему нужен SSL, но видит, что у него его нет. Посмотрите на openrasta или что-то еще, если вы хотите сделать все ваши SSL на loadbalancer. # Microsoftfail

...