Безопасность WCF и что использовать в этой ситуации - PullRequest
1 голос
/ 05 августа 2009

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

На стороне сервера я буду использовать службу Windows для размещения моей службы WCF. Служба будет передавать данные через Интернет на клиентские машины. Я полагаю, что буду использовать wsHttpBinding с безопасностью на уровне сообщений, для которой требуется имя пользователя или сертификат.

Теперь вот проблема .....

-Мы не хотим, чтобы пользователь входил в систему

- на клиентских машинах нет аутентификации Windows

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

У кого-нибудь есть идеи о том, как обезопасить этот вид услуг? Заранее спасибо

Мир

Ответы [ 3 ]

0 голосов
/ 05 августа 2009

Поскольку вы будете использовать приложение самостоятельно. Вы можете использовать wshttpbinding для аутентификации по имени пользователя и паролю (базовый тип учетных данных клиента), когда ваше приложение считывает имя пользователя и пароль из файла конфигурации.

http://msdn.microsoft.com/en-us/library/ms731299.aspx

EDIT

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

0 голосов
/ 15 ноября 2011

В WCF сообщения передаются по множеству поддерживаемых протоколов, включая IPC (именованные каналы), TCP, HTTP и MSMQ. Поэтому вы должны установить политики безопасности для защиты сообщений, а также для аутентификации и авторизации вызовов. Безопасность WCF сама по себе является огромной темой, но мы уверены, что с этой статьей вы быстро ознакомитесь с вопросами безопасности WCF. http://sanjevsharma.blogspot.com/2011/10/basics-of-wcf-security-part-i.html

0 голосов
/ 05 августа 2009

В вашем сценарии кажется, что вы ищете "basicHttpBinding" без какой-либо защиты.

<bindings>
  <basicHttpBinding>
    <binding name="NoSecurity">
      <security mode="None" />
    </binding>
  </basicHttpBinding>
</bindings>

, а затем настройте конечные точки для использования этой конфигурации привязки:

<system.serviceModel>
    <services>
        <service name="YourNamespace.YourService"
                 behaviorConfiguration="MyServiceBehavior">
           <endpoint address="" 
                     binding="basicHttpBinding" 
                     bindingConfiguration="NoSecurity" 
                     contract="YourNamespace.IMyService">
            </endpoint>
            <endpoint address="mex" 
                      binding="mexHttpBinding" 
                      contract="IMetadataExchange" />
        </service>
    </services>

Есть также действительно хорошая серия постов в блоге , в которой рассказывается об основах безопасности WCF с точки зрения пяти различных типичных сценариев - отлично читайте! Ваш сценарий будет сценарием "Нет безопасности вообще".

Еще одна хорошая вступительная статья - «1011 * Основы безопасности WCF» Мишеля Леру Бустаманте .

Более подробный (но также более сложный) набор руководств для WCF можно найти в Руководстве по безопасности WCF в Codeplex.

Марк

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