WCF самый простой режим безопасности для реализации - PullRequest
2 голосов
/ 18 февраля 2011

Какой самый простой режим безопасности для реализации в WCF, когда:

  1. Клиент и сервис .NET приложения.
  2. Клиент и сервис ведут переговоры через интернет.
  3. SSL недоступно.
  4. Порт 80 (веб) предпочтителен для связи.
  5. И Использование x 509 certificate должно быть последний вариант (те же учетные данные в файл конфигурации с обеих сторон предпочтительнее, если возможно)

Ответы [ 3 ]

1 голос
/ 18 февраля 2011

Если вы ищете способ выполнить аутентификацию по имени / паролю, вы можете использовать wsHttpBinding и создать собственный класс, который наследует от UsernamePasswordValidator и переопределяет метод Validate.

Вот пример: http://codebetter.com/petervanooijen/2010/03/22/a-simple-wcf-service-with-username-password-authentication-the-things-they-don-t-tell-you/

0 голосов
/ 18 февраля 2011

Что вы подразумеваете под безопасность ? Можно использовать «безопасность» через Интернет без сертификатов, если ваша безопасность на самом деле означает только имя пользователя и пароль (аутентификация клиента), и вы довольны простыми текстовыми сообщениями. Если вам требуется какая-либо форма шифрования и подписи, вам нужен сертификат или вы должны создать собственное решение. (Использование режима безопасности Windows невозможно, поскольку он работает только в одном домене AD или доверенных доменах.)

WCF сам по умолчанию предоставляет только имя пользователя / пароль (профиль WS-Security UsernameToken с простым текстовым паролем) по защищенному каналу (безопасность транспорта или сообщений). Можно использовать Имя пользователя / Пароль по незащищенному каналу , но в этом случае вы отправите простой текстовый пароль через Интернет. Профиль UsernameToken также предлагает переваренный пароль - он не считается безопасным, но используется очень часто. WCF не поддерживает его, но есть некоторая реализация .

Я бы пошел с HTTPS. Почему это невозможно?

0 голосов
/ 18 февраля 2011

Самым простым способом обеспечения безопасности является отсутствие защиты, хотя и не рекомендуется вообще:

<message clientCredentialType="None" />

<transport clientCredentialType="None" />

Следующим, который на самом деле обеспечивает некоторую безопасность, вероятно, будет Windows (см. Руководство по включению этого здесь ) или Password для безопасности на транспортном уровне. См. здесь для обзора MSDN доступных параметров учетных данных.

Но, честно говоря, для вас есть довольно обширная область, помимо указания Самый простой . Вы можете комбинировать Transport и Message безопасность, использовать либо или, либо использовать разные типы учетных данных и т. Д. - действительно, самый простой зависит от требований, которые, учитывая пункт 5 вашего вопроса, будут похоже, подтверждает мою рекомендацию Windows или Password аутентификация для этого сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...