Проверка защищенной лицензии в распределенном приложении C#
Предположим, у меня есть два приложения: service_1 и service_2.
service_1 является базовым приложением, каждый пользователь с действующей лицензией может использовать это приложение в соответствии со своей лицензией.
service_2 - это приложение премиум-класса, это означает, что пользователь со специальной лицензией может получить его с этим потоком:service_2_login
=> service_1_login
(service2 запрашивает логин у service1, если все в порядке, тогда пользователь может получить доступ к service2).
Проблема здесь: когда пользователь вошел в систему service2 и хочет использовать service2.getService()
нам нужно проверить его лицензионные разрешения для этой операции. Так как license_service
расположенный на сервере service1 с веб-методом is_licensed(User user, Operation operation)
Мы должны обеспечить надежную защиту этой коммуникации - значит, избегать атак "Человек посередине" и т. д.
Вопрос: как спроектировать этот механизм? Мое мышление связано с механизмом ответа на вызов. Первый: это правильный путь? Если да, то, похоже, большие усилия по разработке. Так есть ли реализация C# для этого механизма?
Спасибо!