2015-01-23 2 views
0

У меня есть мой сайт (https: // example.com). Это интернет-приложениеБезопасность WCF TransportWithMessageCredentials с WsHttpBinding

  1. Пользователь может зарегистрировать из вышеприведенного site-- завершенного
  2. Регистрация пользователя получит по электронной почте и будет иметь облизывание для загрузки клиента Windows (WPF или формы Windows клиента) - Завершено
  3. Этот клиент WPF или Windows будет использовать WCF (развернутый в Интернете), который размещен на example.com. Я внутренне проходя UserName и Pwd в Message body.-Завершена

Теперь то, что мне нужно знать, как реализовать безопасность на уровне сообщений и транспортного уровня.

  1. запрос Клиент должен быть зашифрован на уровне сообщений
  2. ответ сервера WCF должен быть зашифрован на уровне сообщений
  3. Связь между клиентом и сервером должен быть SSL

У меня есть прошли от msdn.microsoft.com/en-us/library/ff648902.aspx

  1. Как использовать WsHttpBinding с Логин аутентификации и TransportWithMessageCredentials в WCF Calling из Windows Forms
  2. Как использовать Имя пользователя Аутентификация с членством SQL Server Provider и Message Security в WCF Calling из Windows Forms
  3. Как: использовать проверку подлинности сертификатов и Message Security в WCF вызова из Windows Forms

После прочтения выше Я смущен, который один мне нужно использовать. Пожалуйста, предложите, какой из них лучше всего подходит для моего сценария для удовлетворения моих выше трех условий безопасности.

Если я использую TransportWithMessageCredential s, я вижу шифрование на уровне сообщений и на уровне переноса как?

ответ

0

TransportWithMessageCredentials - это параметр шифрования/защиты, используемый, когда ваш веб-сервисный веб-сайт WCF находится под управлением балансировщика нагрузки или обратного прокси-сервера, выполняющего работу по шифрованию SSL/HTTP.

В «нормальной» ситуации, когда ваш веб-сервис WCF находится в пределах логической DMZ, проверка подлинности шифрования и проверки подлинности клиента хостом WCF выполняется за один шаг, а «голый» контент запроса (незашифрованный и без учетных данных клиента) обрабатывается вашим сервисом.

Однако, если вы используете балансировщик нагрузки или обратный прокси-сервер, который выполняет шифрование (хорошая идея по многим причинам), использование «нормального» транспортного шифрования предоставит вашему веб-службе WCF сообщение БЕЗ учетных данных проверки подлинности клиента ,

Так что, что делает TransportWithMessageCredentials, он сохраняет внутри тела сообщения учетные данные для проверки подлинности клиента, чтобы после того, как RP/LB расшифровал ваше сообщение, веб-служба WCF может на втором этапе обработать ваш запрос на аутентификацию клиента.

Отзывы (0) Ваш отзыв будет первым! В принципе, если вы используете балансировщик нагрузки F5 или какой-либо обратный прокси-сервер, чтобы шифровать/расшифровывать ваши сообщения до их обработки веб-сервисом WCF, вам нужны TransportWithMessageCredentials. Нет балансировки нагрузки или обратного прокси, нет необходимости в TransportWithMessageCredentials.

Надеюсь, это прояснит ситуацию.

+0

Спасибо за ваш ответ. пожалуйста, подтвердите. Правильно ли я понимаю? –

+0

Я знаю, что есть два уровня безопасности: 1. \t Безопасность на транспорте: безопасность применяется по принципу «точка-точка», не предусматривая множественные переходы или маршрутизацию через промежуточные узлы приложения. –

+0

2. \t Безопасность сообщений. Он обеспечивает сквозную защиту. Потому что защита сообщений напрямую шифрует и подписывает сообщение, поскольку посредники не нарушают безопасность. Он позволяет частично или выборочно шифровать и подписывать сообщения, тем самым улучшая общую производительность приложения. Спасибо за ваш ответ. Пожалуйста, подтвердите. Правильно ли я понимаю? Таким образом, с TransportWithMessageCredentials мы можем достичь выше двух уровней безопасности, которые находятся на уровне транспорта и уровне сообщений (зашифрованное полное сообщение SOAP (заголовок, тело). –

Смежные вопросы