Можно ли защитить веб-службу с помощью проверки подлинности с помощью форм?

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


person SharePoint Newbie    schedule 17.02.2009    source источник


Ответы (4)


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

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

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

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

person Luke Chadwick    schedule 17.02.2009

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

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

person John Saunders    schedule 17.02.2009

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

person jle    schedule 17.02.2009

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

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

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

person brendan    schedule 17.02.2009