Защита веб-службы WCF с сохранением совместимости с Android и Silverlight - PullRequest
1 голос
/ 09 января 2012

Мне была поручена защита веб-службы, которая использует WCF и предлагает веб-службы для устройств Silverlight, WP7 и Android.

Поэтому я считаю, что мне нужно активировать SSL, а также добавить форму аутентификации / авторизации в веб-сервис.

Теперь я знаю, что могу включить проверку подлинности Windows на своем web.config и в IIS, которые будут автоматически использовать вход для ПК для проверки подлинности. Но я не знаю, является ли это правильным решением, когда я использую устройства вне интрасети и, в частности, устройства Android. Я не хочу использовать этот метод аутентификации для разработчиков Android в нашей команде, чтобы они не могли прогрессировать. Так это достаточно просто сделать в Android?

Когда я действительно добавил защиту, я обнаружил, что было легко добавить к basicHttpBinding с <transport clientCredentialType="Windows", но это не сработает в customBinding. Есть ли что-то другое с этими?

1 Ответ

2 голосов
/ 09 января 2012

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

В целях безопасности ваш web.config должен иметь следующие данные:

<service name="Service.System" behaviorConfiguration="ServiceBehaviour">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="TransportSecurity" contract="Service.ISystem" behaviorConfiguration="web"></endpoint>
</service>

<bindings>
<webHttpBinding>
<binding name="TransportSecurity">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>

Даже если вы решите не использовать что-то вроде Guid или UUID в java, вам все равно понадобится какой-то способ передать комбинацию имени пользователя и пароля с устройства Android - это не будет работать с аутентификацией Windows.

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

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