2010-08-25 2 views
3

Вот мой сценарий, у меня есть служба WCF, размещенная на внутреннем сервере за брандмауэром.какой тип безопасности необходим для WCF

Клиент - это веб-приложение, которое находится на веб-сервере в DMZ. Брандмауэр открыт на порту между двумя узлами, поэтому соединение может быть выполнено от клиента к серверу.

Какой тип привязки я должен использовать для обеспечения безопасности здесь. Вы знаете пример программы или учебника?

Когда я ищу это, все, что я нахожу, это то, где служба используется клиентами через Интернет и использует проверку подлинности Windows или запрос имени пользователя и пароля.

Мне просто нужно наше приложение на веб-сервере, чтобы поговорить с веб-службой. Любые рекомендации приветствуются. Спасибо!

Кроме того, моя веб-служба работает как консольное приложение.

+0

Что вы хотите защитить своей безопасностью? Банковское дело? Несанкционированные сообщения на форум? или что? –

+0

Это история транзакций для пользователя.В принципе, история покупок - это все. Ничто не слишком рискованно, но кое-что, что мы хотим, несколько безопасно. В принципе, мы не хотим быть взломанными. – twal

+0

Веб-сервис работает как консольное приложение? Это не похоже на хорошую архитектуру производства. –

ответ

1

Если вы контролируете оба конца решения (веб-сервер (клиент) в DMZ и консольном приложении (сервер)), то почему бы не пойти с NetTcpBinding?

  • Это .NET-специфическое связывание, так вы не собираетесь для взаимодействия (но так как у вас есть контроль над обеими концов связи, это звучит как это не проблема).
  • Это производительность быстрее, чем привязка WSHttpBinding и результаты в передаются более мелкие сообщения.

Похоже, вам не нужны учетные данные, передаваемые вместе с сообщением (помимо идентификатора пользователя или какой-то тип идентификатора передается в сообщении), так что вы можете использовать эту привязку, используя TcpClientCredentialType.None.

Here - хорошее описание функций безопасности для каждой встроенной привязки WCF. Описание NetTcpBinding составляет около 1/3 пути вниз по странице.

Надеюсь, это поможет.

+0

Отлично, спасибо, я посмотрю на это. Я ценю вашу помощь! – twal

+0

Надеюсь, это сработает для вас. Если есть другие проблемы, добавьте комментарий, и я соответственно обновлю ответ. Удачи! –

+0

Извините, если это глупые вопросы, какой режим безопасности я хочу использовать в этой ситуации? Транспорт? – twal

0

Если вы начинаете с того, что можно атаковать, а затем попытайтесь его защитить. 3 obvoius должен был атаковать это:

  • Слушайте трафик между серверами. Используйте зашифрованный протокол, например ws-httpbinding с шифрованием сообщений. Связывание Nettcp также хорошо работает здесь.
  • Звоните непосредственно в службу WCF. Удалите MEX, чтобы они не могли получить подпись вашей службы, требуя аутентификации в сервисе.
  • Получить информацию об аутентификации для службы с веб-сервера. Не храните имя пользователя и пароль в текстовом виде в файле конфигурации. Например, используйте контекст безопасности службы, в которой вы работаете.

Это исправляет некоторые вещи, всегда есть что-то, что вы могли бы сделать.

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