Как настроить безопасность при вызове Сервиса WCF от.Net 2.0 Client

Проблема заключалась в том, что я добавил исходный хост с http вместо https. Все работает нормально.

15
задан JasonS 24 October 2008 в 04:48
поделиться

5 ответов

Можно настроить конечную точку WCF для использования аутентификация SSL с 2 путями . Это означает, что можно потребовать, чтобы клиенты представили сертификат X.509, который подтверждает их идентификационные данные каждый раз, когда они выполняют запрос к сервису.

На стороне сервера вещей, можно использовать одну из встроенных схем проверки в WCF или обеспечить собственную логику проверки для проверки сертификата X.509.
при хостинге сервиса в IIS это было бы тривиально для конфигурирования SSL для требования клиентских сертификатов в транспортный уровень . Однако можно найти хорошее руководство по тому, как реализовать это поведение в саморазмещенном сервисе WCF здесь:

http://leastprivilege.com/2007/08/25/certificate-based-authentication-and-wcf-message-security/

я не попробовал это сам, но, так как это создает требование к защите в уровень сообщения , я думаю, что необходимо будет использовать , wsHttpBinding для осуществления его в контракте WSDL, начиная с наложения требований к защите получить доступ к веб-сервису является частью WS -* стандарты.

, Если необходимо использовать basicHttpBinding, можно попробовать это решение вместо этого, которое перемещает вещи вверх на транспортном уровне:

http://leastprivilege.com/2007/08/26/certificate-based-authentication-and-wcf-mode-independent/

Hope это помогает

10
ответ дан 1 December 2019 в 04:27
поделиться

Хорошо так, с SSL у Вас есть безопасность транспортного уровня; который прекрасен, который защищает сообщение от сниффинга и изменения.

Поэтому теперь у Вас есть опции; Вам нужна проверка, чтобы быть тихими, или можно ли предложить пользователю имя пользователя/пароль, когда программа запускается? Если это должно быть тихо затем, можно пойти клиентский сертификат, как упомянуто (хотя это болезненно, необходимо будет генерировать сертификаты сами и проверить их, таким образом, необходимо будет посмотреть на выполнение собственного центра сертификации). Или можно встроить пользовательский заголовок в сообщение, которое содержит клиентский идентификатор, и сделайте это kludgey путь.

, Если однако можно запросить имя пользователя и пароль затем, Вы аутентифицируете тот путь и включаете его в поиск базы данных довольно легко с помощью пользовательский аутентификатор , или даже с помощью база данных членства ASP.NET .

4
ответ дан 1 December 2019 в 04:27
поделиться

Вы безопасность будете покрыты ssl.

Для аутентификации у Вас есть две опции - основной (имя пользователя и пароль) или сертификат.

Здесь видео, которое демонстрирует аутентификацию сертификата конфигурирования.

В этом Вы настраиваете элементы защиты basicHttpBinding, показанного ниже:

< basicHttpBinding>
    < привязка имени = "basicHttp">
        < режим безопасности = "TransportWithMessageCredential">
            < передайте clientCredentialType = "Сертификат"/>
        < / безопасность>
    < / связывающий>
</basicHttpBinding>

существует также хорошая страница на этом здесь . Google на clientCredentialType и необходимо оказаться на правильном пути достаточно скоро.

For, настраивающий клиентские сертификаты, Вы после wse* файл политики.

необходимо будет разработать, как Вы предоставите клиентский сертификат различному sites.-, который зависит от проблем безопасности проекта. Существуют различные пути (ни один из которого я могу помнить извините, я в последний раз сделал это для wse* к wse* приблизительно два года назад, таким образом, о деталях забывают, но это, конечно, возможно, взял исследование тела нескольких дней для нахождения хорошего метода).

0
ответ дан 1 December 2019 в 04:27
поделиться

Используя сертификат SSL единственная опция для.NET, которую 2,0 клиента, получающие доступ к сервису WCF как basicHttpBinding, не обеспечивают безопасности. При помощи SSL Вы защищаете целый транспортный канал.

Проверка ссылка http://www.codeplex.com/WCFSecurityGuide/Release/ProjectReleases.aspx?ReleaseId=15892 . Это покрывает безопасность WCF, покрывающую все сценарии.

Для получения бесплатного сертификата SSL посетите http://www.comodo.com/ или http://www.instantssl.com/ и испытайте в приложении.

0
ответ дан 1 December 2019 в 04:27
поделиться

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

  1. Защищено транспорт с SSL
  2. . Клиенты сначала входят в веб-службу, вызывая метод входа в веб-службу. В случае успешного входа в систему клиенту возвращается зашифрованный FormsAuthenticationTicket.
  3. Затем клиенты должны предоставлять билет проверки подлинности с помощью форм с каждым вызовом веб-службы. Каждый метод проверяет, действителен ли билет, и если да, то выполняет свою работу. Если срок действия билета истек или он недействителен, клиенты должны пройти повторную аутентификацию.

Надеюсь, что это кому-то поможет ...

1
ответ дан 1 December 2019 в 04:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: