Как я могу убедиться, что подлинные клиенты Silverlight звонят в мои службы Azure - PullRequest
4 голосов
/ 21 марта 2011

Как я могу быть уверен, что только наши приложения silverlight вызывают наши службы Azure?

Клиенту Silverlight понадобится аутентифицировать пользователя и иметь правильные разрешения для выполнения действия, но я не знал, как аутентификация приложения обычно реализуется в этих вызовах службы Azure. Я знаю, что вы можете подписать заявку (требуется для обновления клиента). Достаточно ли этого в сочетании с ssl-соединениями? Должен ли я использовать сертификат на клиенте?

Каковы некоторые общие подходы к этой проблеме?

Ответы [ 4 ]

2 голосов
/ 21 марта 2011

Вы можете поместить данные в заголовки вашего сообщения.Вы можете сделать это в заголовке SOAP при использовании SOAP или в заголовке HTTP при использовании REST.Затем, когда вы это сделаете, вы можете использовать безопасный канал SSL для общения, чтобы люди не могли прослушивать ваши пакеты.

http://blogs.msdn.com/b/nathana/archive/2007/05/29/custom-soap-headers-wcf-and-asmx.aspx

Когда вы используете службу RIA и выхотите добавить данные в заголовок HTTP, затем посмотрите мой блог:

http://strugglesofacoder.blogspot.com/2011/02/normal-0-21-false-false-false-nl-be-x.html

1 голос
/ 21 марта 2011

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

Вы не должны предполагать ничего о клиенте. Ваши службы должны выполнять проверку входящих запросов, не пытаясь определить, кто / что является клиентом.

Я надеюсь, что у кого-то есть решение, потому что я его еще не нашел, и я бы хотел защитить свои сервисы, чтобы только Silverlight мог делать запросы.

0 голосов
/ 02 марта 2012

Silverlight - сложная задача, когда дело доходит до интеграции с ACS. Кажется, что запись в заголовки из Silverlight для передачи аутентификационной информации очень сложна - нет простого способа перехватить вызовы, чтобы обернуть ихЗаголовок аутентификации в Silverlight, как вы могли бы сделать в приложении ASP.NET.

Вы можете использовать ACS для получения идентифицирующей информации в Silverlight, используя подход, подобный следующему: http://channel9.msdn.com/Events/MIX/MIX10/SVC01

В итоге я завернул заявление о уникальном идентификаторе в токен SWT, подписанный ключом, известным как Silverlight, так и веб-службой, и заставил веб-службу проверить, что у этого пользователя есть доступ.Поместив уникальный идентификатор в подписанный токен SWT (со сроком действия очень короткой суммы - чтобы помочь уменьшить атаки, когда люди копируют действительный запрос и отправляют его снова в более позднее время), я мог бы с уверенностью полагать, что запрос былдействительно из моего приложения Silverlight.

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

Надеюсь, это поможет.

0 голосов
/ 12 августа 2011

Вы можете сделать это с помощью службы контроля доступа, есть хороший пример кодекса, написанный кем-то из команды ACS:

http://acs.codeplex.com/wikipage?title=ACS%20Windows%20Phone%20Sample&referringTitle=Samples

, хотя это Windows Phone 7клиент (который также Silverligh), я думаю, что вы можете извлечь из него то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...