Аутентификация запросов через микросервисы - PullRequest
0 голосов
/ 16 октября 2018

У меня есть куча микросервисов, один из которых отвечает за аутентификацию пользователя.В этом сервисе пользователю разрешено входить через Facebook, Google (через Passportjs) и использовать обычный логин / пароль для входа.

Паспорт позволяет очень легко аутентифицировать запросы к API и обрабатывать сеансы, однако, если у меня несколько API (из-за нескольких микросервисов).Паспорт, вероятно, вызовет много накладных расходов, потому что мне придется скопировать все файлы конфигурации паспорта во все службы, и мне придется изменить их все, если я хочу что-то изменить.Есть ли другие варианты?Я думал об использовании JWT с общим секретом во всех сервисах, но, опять же, я не уверен, стоит ли идти этим путем.

1 Ответ

0 голосов
/ 17 октября 2018

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

Как только пользователь вошел в систему, любая другая конечная точка проверит сеансы пользователя.с сервисом, который вы используете для аутентификации пользователей, будь то Facebook, Google и т. д., перед отправкой запроса в другие микросервисы.Обратите внимание, что другие микросервисы, которым требовалась аутентификация или авторизация, должны быть частными и доступными только для служб в той же сети, например, шлюза API.

...