Подключение службы Windows с Web Api? - PullRequest
0 голосов
/ 28 февраля 2019

В настоящее время у меня есть веб-сайт (actjs) и API-интерфейс ядра asp.net.Прямо сейчас Все конечные точки в моем основном API защищены тегами "Авторизация".Пользователь войдет в систему и будет выдан токен / обновленный токен, который будет отправляться при каждом запросе.

Теперь я создаю службу Windows, которая должна получить доступ к моей базе данных.Я на самом деле не думаю, что для этой службы хорошая идея иметь прямой доступ к базе данных, и я думаю, что может быть лучше иметь одну конечную точку, которая имеет доступ к базе данных (то есть веб-API).

Это теперь заставляет меня выяснить, как моя служба Windows подключится к моему API.Единственный способ, которым я могу понять, - это создать фальшивого пользователя, который будет входить в систему, а затем каждый раз, когда моей службе потребуется подключаться к API, он будет отправлять этот токен.

В противном случае, я думаю, мне придется сделать что-то вродеAPI-ключи или что-то?

1 Ответ

0 голосов
/ 28 февраля 2019

Так что, если мы говорим о решениях - id предлагает вам предложенное ниже.

Реальная проблема заключается в том, чтобы убедиться, что ваш основной API понимает, что входящий запрос действителен, без необходимости слишком много реструктурировать API в еготекущая форма.

Ваша идея использования API-ключей - это то, на что я хотел бы обратить внимание: вы можете написать промежуточное программное обеспечение внутри вашего API, которое будет считывать ключ Api из заголовков, отправленных службой Windows, проверять его, а затем генерироватьдействительный токен JWT и добавьте его в заголовки запроса.Как только этот запрос попадет на уровень MVC, он будет содержать действительный токен JWT и передать заголовок Auth.

Это усложняет необходимость поддерживать набор ключей API внутри базы данных и проверять их на уровне запроса.,Это означает, что каждый отправленный запрос должен пройти через этот процесс и выполнить поиск в БД для ключей.

Чтобы облегчить это, я бы добавил еще один заголовок, который указывает, что входящий запрос поступает из другого источника, отличного от пользователя (проверено в промежуточном программном обеспечении), и, возможно, добавил бы реализацию кэширования поверх набора ключей API для сохранения их в памяти.чтобы уменьшить количество поисков.

Приведенный выше сценарий будет полезен, если вашей службе Windows нужно делать то же самое, что делает пользователь.

Если его другая логика ничто не мешает вам запустить новый контроллер сВыделите конечные точки для вашей службы с помощью собственной политики авторизации, которую вы можете определить для этого контроллера.Затем этот контроллер будет отвечать за обслуживание службы Windows (или других компонентов).

...