Можно ли защитить веб-сервис с помощью проверки подлинности с помощью форм? - PullRequest
7 голосов
/ 17 февраля 2009

Мы стремимся защитить несколько веб-сервисов ASP.Net 2.0 .asmx. В котором будут размещаться веб-сервисы, формы уже аутентифицированы.
Можно ли защитить веб-сервисы с помощью аутентификации форм? Каковы плюсы и минусы и другие возможные способы достижения этого. Мы, конечно, не хотим передавать имя пользователя / pwd или токен в каждом вызове веб-метода.

Ответы [ 4 ]

5 голосов
/ 17 февраля 2009

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

Уровень необходимой безопасности, очевидно, зависит от чувствительности данных, с которыми вы работаете, но я собираюсь предположить, что они как минимум несколько чувствительны (но меньше, чем банковские транзакции). Возможно, вы могли бы использовать SSL и передать имя пользователя и пароль, как предлагал jle, пока я набирал это, или вам мог бы потребоваться ключ API, как это делает flickr.

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

Как уже упоминалось, это сильно зависит от того, КАК конфиденциальная информация, которую вы пытаетесь защитить.

2 голосов
/ 17 февраля 2009

WSE устарел. Не используйте его, если у вас нет выбора.

Почти все функции WSE лучше реализованы WCF. Остальные возможности, не реализованные WCF, сами устарели (например, DIME).

0 голосов
/ 17 февраля 2009

Вы должны быть в состоянии использовать WSE для защиты своего сервиса с помощью проверки подлинности с помощью форм - хотя лично мне никогда не приходилось это делать.

Вот некоторые ресурсы, использующие WSE:

Чтобы не использовать WSE, вам нужно реализовать что-то подобное, как на это ссылались некоторые другие авторы, хотя я не уверен, насколько надежным это будет:

0 голосов
/ 17 февраля 2009

Возможно, но вам нужно будет перенаправить пользователей на страницу входа. Другим вариантом передачи имени пользователя / pw является использование веб-службы через ssl . Если вы шифруете соединение, базовая аутентификация может быть использована без проблем.

...