Так что, если мы говорим о решениях - id предлагает вам предложенное ниже.
Реальная проблема заключается в том, чтобы убедиться, что ваш основной API понимает, что входящий запрос действителен, без необходимости слишком много реструктурировать API в еготекущая форма.
Ваша идея использования API-ключей - это то, на что я хотел бы обратить внимание: вы можете написать промежуточное программное обеспечение внутри вашего API, которое будет считывать ключ Api из заголовков, отправленных службой Windows, проверять его, а затем генерироватьдействительный токен JWT и добавьте его в заголовки запроса.Как только этот запрос попадет на уровень MVC, он будет содержать действительный токен JWT и передать заголовок Auth.
Это усложняет необходимость поддерживать набор ключей API внутри базы данных и проверять их на уровне запроса.,Это означает, что каждый отправленный запрос должен пройти через этот процесс и выполнить поиск в БД для ключей.
Чтобы облегчить это, я бы добавил еще один заголовок, который указывает, что входящий запрос поступает из другого источника, отличного от пользователя (проверено в промежуточном программном обеспечении), и, возможно, добавил бы реализацию кэширования поверх набора ключей API для сохранения их в памяти.чтобы уменьшить количество поисков.
Приведенный выше сценарий будет полезен, если вашей службе Windows нужно делать то же самое, что делает пользователь.
Если его другая логика ничто не мешает вам запустить новый контроллер сВыделите конечные точки для вашей службы с помощью собственной политики авторизации, которую вы можете определить для этого контроллера.Затем этот контроллер будет отвечать за обслуживание службы Windows (или других компонентов).