Параметры проверки подлинности в диспетчере IIS по сравнению с web.config и system.serviceModel - PullRequest
0 голосов
/ 06 апреля 2010

У меня есть веб-сервис WCF, и я хочу использовать обычную аутентификацию. Я теряюсь в опциях аутентификации:

  • В диспетчере IIS 6 я могу зайти в свойства веб-сайта и установить параметры аутентификации.
  • В файле web.config веб-сайта под system.web есть тег <authentication mode="Windows"/>
  • В файле web.config веб-сайта под system.serviceModel я могу настроить:

    <wsHttpBinding>
      <binding name="MyBinding">
        <security mode="Transport">
          <transport clientCredentialType="Basic"/>
        </security>
      </binding>
    </wsHttpBinding>
    

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

Некоторый контекст: у меня есть простой проект веб-сайта, который содержит один .svc веб-сервис, и я хочу, чтобы он использовал обычную аутентификацию по SSL. (Кроме того, я хочу, чтобы он не использовал учетные записи Windows, но, возможно, это другой вопрос.)

Ответы [ 2 ]

1 голос
/ 06 апреля 2010

Первые два на самом деле касаются доступа к виртуальному каталогу ASP.NET или виртуальному приложению в IIS6 - это в основном не имеет ничего общего с WCF (WCF на самом деле не является ни частью, ни зависимой от ASP.NET). Настройки определяют, как HTTP-запрос, поступающий на веб-сервер IIS6, обрабатывается с точки зрения аутентификации. Это в основном контролирует, могут ли анонимные абоненты из Интернета просто звонить без аутентификации, или им нужно вводить имя пользователя / пароль, или разрешены только абоненты с действительной идентификацией Windows в этом домене.

Единственная причина, по которой это интересно для вашей службы WCF, заключается в том, что когда вы размещаете службу WCF в IIS (только один из множества параметров), у вас есть файл (myservice).svc, который должен находиться в виртуальном каталоге. , Конечно, доступ к этому файлу SVC контролируется параметрами аутентификации IIS6 / ASP.NET.

Режим безопасности внутри раздела <wsHttpBinding> - это определение, связанное с безопасностью того, как служба WCF будет взаимодействовать со своими клиентами. Mode = Transport означает, что вы защищаете реальный транспортный уровень - обычно с помощью SSL - не каждое сообщение отдельно. Этот параметр отлично работает в сценариях интрасети, где все клиенты находятся за корпоративным брандмауэром, но он не будет работать слишком хорошо в сценариях Интернета, поскольку вы не можете реально контролировать всю цепочку от клиента (где-либо на этой планете) над серия промежуточных переходов на ваш сервер - вы просто не можете. В этом случае вам придется использовать Mode = Message, который в основном шифрует и подписывает каждое сообщение, передаваемое по проводам, - которое работает через любое количество маршрутизаторов и ретрансляторов на всем пути от пункта отправления до вашего сервера.

0 голосов
/ 06 апреля 2010

Первые два связаны, если они не совпадают, ваш сервис не сможет активироваться.Если вы выбираете аутентификацию Windows, очевидно, что есть предположение, что вы будете привязаны к домену Windows или локальному компьютеру.

Поскольку вы собираетесь выполнять базовую аутентификацию SSL, вы должны установить для нее значение Нет и затем настроитьбезопасность вашего транспорта.

Ваш универсальный магазин для настройки транспорта + базовая аутентификация

Статья MSDN по транспорту + имя пользователя + Windows Forms

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

Сравнение транспорта и сообщения

Шаблоны и методы обеспечения безопасности сообщений и транспорта

...