У вас есть два варианта (хорошо, только что видел ответ @ Марка, так что, по крайней мере, три варианта), мои два - белый список:
- Вы настраиваете сервер, на котором размещена служба, так, чтобы он принимал запросы только из указанных диапазонов
- Вы вносите белый список в программное обеспечение и проверяете IP-адрес для каждого запроса при его получении.
Технически первый, вероятно, самый простой (если принять во внимание стандартный веб-сервер, которым вы управляете), поскольку он уже существует. Например, в IIS вы можете запретить доступ, кроме указанного. Проблема заключается в обслуживании, и это становится более серьезной проблемой, если у вас есть несколько серверов, так как они должны быть синхронизированы, а ответственные должны иметь доступ администратора к серверу (если мы делаем это простым).
Таким образом, лучшим решением этих двух долгосрочных задач (поскольку вышеперечисленное можно реализовать немедленно) будет проверка запросов по мере их поступления к вам в службу и проверка запросов по «базе данных» действительных IP-адресов, а затем просто отклонение любые запросы, которые вам не нравятся, с любым ответом, который вы считаете нужным. Это имеет следующие преимущества: а) предоставление вам большего контроля (например, вы можете разрешить менее ограниченный доступ к некоторым службам, если это необходимо) и б) предоставление вам собственных инструментов для ведения таблицы IP-адресов, поскольку можно надеяться - если Ваш SaaS успешен - это будет важной и постоянной задачей.
Здесь нет единственно правильного ответа - если VPN является работоспособным решением, то оно имеет значительные достоинства, но, в свою очередь, сопровождается собственным набором проблем с настройкой и обслуживанием.