2012-03-27 3 views
2

У меня есть один вопрос о безопасности веб-службы WCF. В настоящее время мы разрабатываем один мобильный проект для Android и используем веб-службу wcf для передачи данных и манипуляций. Мы используем basicHttpBinding и размещаем веб-службу как Window Service.Как защитить веб-службы WCF, размещенные на службе Windows?

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

//WCF Service Method 
public string DoWork() 
{ 
     return "This is return string!"; 
} 

    //We can consume it like below from other dot net project by adding service reference. 
    //Actually, those are not real client. 
    ServiceReference1.WebServiceClient serv = new TestingPrj.ServiceReference1.WebServiceClient(); 
    string result = serv.DoWork(); 

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

+0

Здесь есть много справки: https://www.google.com/#q=securing+wcf+web+services –

+0

Я уже пытаюсь, но большинство ответов посвящено веб-сервисам, размещенным в IIS. Вот почему я задал этот вопрос. В любом случае, спасибо за вашу помощь. – Chong

ответ

0

Использование сертификатов ssl - самый безопасный способ.

+0

Как защитить сертификаты ssl от неправильного доступа пользователя к сервису? – mellamokb

+0

Мы размещаем сервисы как услугу окна, и мы не используем сервер IIS. Можно ли использовать SSL-сертификаты таким образом? – Chong

+0

Да, вы можете сделать это либо через конфигурационный файл, либо для кодирования службы, требующей HTTPS. Если у вас установлен сертификат на сервере, на котором работает служба Windows, он должен привязываться к сертификату. – mellamokb

1

Простейшим методом является использование базовой аутентификации через SSL. Для базовой аутентификации клиент должен иметь пару имени пользователя/пароля, которую будет знать только ваше приложение. Если аутентификация предназначена исключительно для того, чтобы знать, является ли ваш клиент правильным (вместо того, чтобы знать, какой пользователь подключается), вы можете использовать одно жестко закодированное имя пользователя/пароль.

Должен использоваться протокол SSL, поэтому учетные данные не распространяются на провод в текстовом виде и могут быть понюханы.

 Смежные вопросы

  • Нет связанных вопросов^_^