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





Предполагая, что у вас нет возможности использовать WCF, я бы рекомендовал использовать WSE 3 (улучшения веб-служб). Вы можете получить набор инструментов / SDK штуку на Сайт MS
Чтобы ограничить доступ только к внутренним машинам (как я думаю, ваш вопрос задан), я бы создал отдельный веб-сайт в IIS и настроил его так, чтобы он отвечал только на внутренний IP-адрес вашего сервера.
Я бы установил правило брандмауэра, чтобы ограничить доступ к белому списку IP-адресов.
Используйте IIS ограничения IP-адреса безопасности каталога и ограничьте доступ только этим внутренним IP-адресом веб-сервера.
Если вы не можете этого сделать, и вы не можете установить имя пользователя / пароль в каталоге, используйте WSE и добавьте имя пользователя / пароль в службу или посмотрите сертификаты, если вы хотите немного повеселиться ухмылка
Может быть, я не правильно понял, но зачем вообще публично раскрывать веб-методы, если они будут использоваться только внутренним сервером?
В этот момент мне приходит в голову фильтрация IP-адресов в IIS. Быстро применить, должно работать в вашем сценарии.
TLS с клиентскими сертификатами. См. Запись в Википедии, чтобы начать работу.
Подойдет простой HTTP-модуль. Просто закодируйте (или из конфигурации) разрешенный IP / хост и отклоните все остальные.
Один из самых простых способов - передать учетные данные в мыльном заголовке сообщения. Таким образом, каждый вызов передает информацию, необходимую для определения, авторизован ли пользователь. WSE кое-что из этого упрощает, но одно из наиболее сжатых описаний этого процесса можно найти в книге Рокки Лхотки о бизнес-объектах. У меня есть много книг для рецензирования от издателей, и у этой есть лучшее объяснение
Имейте в виду, что есть способы обойти заносит IP-адреса в белый список. Не поймите меня неправильно, это отличная идея, и вы обязательно должны это сделать, но если ваш бюджет / ресурсы позволяют это, вы можете расширить свою модель угроз.
Если только внутренний сервер будет иметь доступ к файлам asmx? Вы можете настроить их в IIS на отдельном веб-сайте или в виртуальном каталоге, а затем наложить на сайт некоторые ограничения IP. В свойствах перейдите в раздел «Безопасность каталога», затем «Ограничения IP-адресов и доменных имен».
Кроме того, WSE 3 является новым подходом для паролей, но я нашел простой метод в книге от Apress под названием "Pro ASP.NET 2.0 на C# 2005", глава 34. (Обратите внимание, что в новой версии этой книги отсутствует в этой главе.) Этот раздел - это настраиваемая аутентификация на основе билетов.
Подписки Books24x7 и Safari спешат на помощь :) Я взгляну на главу 34. Спасибо.
На самом деле, я думаю, вы правильно поняли. Это заставляет меня задаться вопросом, почему веб-сервис вообще доступен через переадресацию портов ???