2008-09-23 2 views
8

У меня есть веб-сервис (ASMX) с несколькими веб-методами на нашем веб-сервере производства. На отдельном внутреннем веб-сервере (который не публично открыт) у меня есть другой веб-сайт, который будет использовать общедоступные веб-методы ASMX. Каковы некоторые из лучших способов защиты веб-сервиса, так что только внутренний веб-сервер может получить доступ к веб-службам, запущенным на общедоступном веб-сервере?Защита веб-службы

ответ

3

Одним из самых простых способов является передача учетных данных в заголовок мыла сообщения. Таким образом, каждый вызов проходит по информации, необходимой для определения того, разрешен ли пользователь. WSE делает некоторые из них более легкими, но одно из самых кратких описаний этого процесса можно найти в книге Рокки Лхотки о Business Objects. Я получаю много книг для обзора издателями, и у этого было лучшее объяснение.

1

Предполагая, что у вас нет возможности использовать WCF, я бы защищал использование WSE 3 (улучшения веб-сервисов). Вы можете получить toolkit/SDK thingummy по адресу MS's site

Чтобы ограничить доступ только к внутренним машинам (как я думаю, ваш вопрос задан), я бы установил отдельный веб-сайт в IIS и настроил его только на внутренний IP-адрес вашего сервера.

1

Я бы установил правило брандмауэра, чтобы ограничить доступ к белым спискам IP-адресов.

1

Используйте IIS directory security IP address restrictions и ограничивайте доступ только к этому IP-адресу внутреннего веб-сервера.

Если вы не можете этого сделать, и вы не можете установить имя пользователя/пароль в каталоге, затем используйте WSE и добавьте имя пользователя/пароль в службу или посмотрите сертификаты, если хотите какое-то удовольствие grin

1

Возможно, я не понял правильно, но зачем публиковать веб-методы вообще, если они будут потребляться только внутренним сервером?

+0

На самом деле, вы правильно понимаете, я думаю. Это заставляет меня задаться вопросом, почему веб-сервис даже отображается через переадресацию портов ??? – leppie 2008-09-23 14:01:29

0

В этот момент мне приходит в голову, что IP-фильтрация на IIS. Быстро применять, должен работать в вашем сценарии.

1

Простой HTTP-модуль будет работать. Просто hardcode (или из config) разрешенный IP/хост и отклоняйте все остальные.

0

Помните, что there are ways around IP-адреса для белых. Не поймите меня неправильно, это отличная идея, и вы должны это делать определенно, но если ваш бюджет/ресурсы позволяют это, вы можете расширить свою модель угрозы.

1

Если это только внутренний сервер, который будет обращаться к файлам asmx? Вы можете настроить их в IIS на отдельном веб-сайте или в виртуальном каталоге, а затем установить некоторые ограничения на IP-адрес на сайте. В свойствах перейдите в раздел «Безопасность каталога», затем «Ограничения IP-адреса и доменных имен».

Кроме того, для паролей WSE 3 является новым, но я нашел простой способ в книге из Apress, называемой «Pro ASP.NET 2.0 в C# 2005», глава 34. (Примечание: более новая версия этой книги исключает эту главу.) Этот раздел представляет собой обычную аутентификацию на основе Ticket.

+0

Books24x7 и подписки на сафари на помощь :) Я рассмотрю главу 34. Thx. – Bullines 2008-09-23 14:49:16