WCF: веб-сервис Логин / Аутентификация: как? - PullRequest
4 голосов
/ 19 ноября 2010

У нас есть веб-сервис (WCF в C #), который до сих пор использовался в интрасети. В дальнейшем мы хотим открыть его в Интернете.
Очевидно, мы обеспокоены тем, что непослушные люди не могут получить доступ к интерфейсам. Каков наилучший метод обеспечения этого в WCF? Это WSS?
Я предполагаю какой-то интерфейс входа в систему и возвращаемый токен, который клиент должен использовать при каждом вызове?

Ответы [ 2 ]

3 голосов
/ 19 ноября 2010

У вас есть в основном шесть вариантов:

  • Учетные записи Windows - отлично подходят для интрасети, не так хороши в сценариях интернета (встроенные, настраиваются только)

  • Имя пользователя / пароль для системы членства в ASP.NET: вам все еще нужно хранить базу данных действительных пользователей;в зависимости от того, что вы хотите сделать, это может сработать для вас (встроенный, настроить только - вам нужно отслеживать базу пользователей)

  • Сертификаты на клиентских машинах, вызывающие:разрешены только те машины, которые имеют соответствующие сертификаты;отлично подходит для закрытой группы пользователей, не очень хорош в общих сценариях с подключением к Интернету (встроенный, только для настройки)

  • Какой-то тип обязательного заголовка - либо проверен по базе данных (например, "действительные жетоны заголовков "), или просто проверены, например, путем вычисления контрольной суммы или чего-то еще - любой, кто знает ваш" секретный "заголовок, сможет позвонить (встроенный, требуется немного кода для извлечения и проверки заголовка)

  • Некоторое нестандартное решение - вы можете определить свой собственный сценарий аутентификации / авторизации и настроить его по своему вкусу;требует некоторого кода на вашей стороне - но дает вам максимальную гибкость (ваш собственный код полностью)

  • Без проверок - просто оставьте его открытым для всех (встроенный, только для настройки)

У экстраординарного гуру WCF Ювала Лоуи есть отличная статья в журнале MSDN: Декларативная безопасность WCF - возможно, это может дать вам несколько дополнительных советов и указателей.Он в основном определяет пять сценариев и обсуждает свое рекомендуемое решение для каждого (а также заполняет эти вещи в готовой, основанной на атрибутах декларативной структуре)

2 голосов
/ 19 ноября 2010

Вы должны проверить Windows Identity Foundation (WIF). С помощью WIF вы можете создать службу токенов безопасности, которая будет заботиться о проверке подлинности, так что ваши службы WCF будут иметь дело только с авторизацией. Это довольно большая тема, поэтому я предлагаю вам взглянуть на некоторые технические документы и решить, хотите ли вы их вообще использовать, а затем вернуться и задать более конкретные вопросы.

...