Я работаю над веб-сервисом доставки данных подписки, используя C # и WCF.Клиенты будут подписываться на использование услуги на разных уровнях за ежемесячную плату.Требования проекта требуют, чтобы служба была доступна из веб-приложения, размещенного на том же сервере, из приложения для настольных компьютеров и службы Windows, распространяемых среди клиентов, и из плагина WordPress.В будущем может быть добавлена поддержка для других систем CMS и мобильных приложений (Apple / Android).
Требования безопасности включают стандартный идентификатор пользователя и аутентификацию по паролю для каждого вызова службы для проверки состояния и типа подписки.и отслеживать активность пользователей.Это достаточно легко сделать, но есть еще кое-что, и вот что я ищу совет.
Прежде всего, необходимо отслеживать IP-адреса и использовать эту информацию для контроля доступа.Одна часть этого состоит в том, чтобы ограничить количество различных IP-адресов, из которых сервис может быть вызван в течение определенного периода времени для идентификатора и типа подписки.Вторая часть заключается в том, чтобы полностью запретить доступ к услуге из определенных стран.Я прочитал некоторые другие ответы здесь о том, как реализовать обнаружение / отслеживание IP-адресов в целом, но меня больше беспокоит потенциальные трудности, связанные с этим, с которыми сталкиваются другие.Чего нам следует здесь остерегаться?
Вторым важным требованием безопасности является ограничение доступа к услуге для предоставляемых нами приложений для настольных компьютеров / служб или из авторизованных доменов с помощью наших плагинов CMS.Я не уверен, как это можно реализовать, кроме как использовать какой-то токен аутентификации, который, конечно, можно легко взломать.Возможно, в сочетании с требованиями для входа и IP-адреса этого будет достаточно.Есть ли альтернативные методы, которые могли бы быть лучше?