Как защищены службы RESTful WCF, чтобы их могли вызывать только вызывающие приложения? - PullRequest
2 голосов
/ 16 декабря 2009

У меня есть приложение, которое использует Silverlight и ASP.NET в качестве внешнего интерфейса. Он извлекает данные с сервера, вызывая некоторые службы RESTful WCF, которые там размещены. Я хотел бы запретить любопытному пользователю открывать новое окно браузера и вызывать веб-службу самостоятельно. Есть ли способ ограничить доступ к веб-сервисам для определенного приложения?

Спасибо!

Ответы [ 4 ]

2 голосов
/ 16 декабря 2009

Вы можете использовать HTTPS для защиты конечной точки и требовать аутентификации. Вы можете поместить неприятно длинный секретный ключ, встроенный в код. К сожалению, System.Security.Cryptography не установлен на SL, поэтому не нужно шифровать на сервере / расшифровывать возможности клиента. И нет никакой причины, по которой пользователь не мог бы просто использовать что-то вроде отражателя для чтения кода.

SL можно сделать «в основном защищенным», но определенно небезопасным.

0 голосов
/ 09 марта 2010

Вот руководство команды Patterns & Practices по безопасности WCF. Там много чего можно найти.

http://www.codeplex.com/WCFSecurityGuide

0 голосов
/ 16 декабря 2009

Если вы действительно заинтересованы в защите своих веб-сервисов, вам следует подумать о переходе от сервисов RESTful к веб-сервисам на основе SOAP и реализации стандарта WS-Security для шифрования на основе сообщений.

После этого вы можете защитить свои услуги, чтобы ваши клиенты могли обращаться к веб-службам только тем клиентам, которые имеют правильную информацию о безопасности (имя пользователя / пароль или сертификаты X.509 ).

Обновление

Как видите ... Я удалил X.509 в качестве опции. Я на мгновение отключился и забыл ограничения WS-Security в Silverlight. Хорошей новостью является то, что вы можете реализовать токены имени пользователя на основе стандарта WS-Security в Silverlight:

Реализация пароля пользователя и WS-Security с Silverlight

0 голосов
/ 16 декабря 2009

Нет, нет.

...