API-шлюз + микросервис входа + redis - PullRequest
0 голосов
/ 04 августа 2020

Я разрабатываю веб-приложение и пытаюсь разработать и реализовать архитектуру микросервисов. Я много читал об аутентификации и авторизации, и мне хотелось бы знать, на правильном ли я пути со своим дизайном.

У меня есть шлюз API, который управляет всем потоком связи между внешним приложением и серверные службы. За шлюзом у меня есть два микросервиса, называемые поставщиком удостоверений и микросервисом внешнего интерфейса соответственно. Поставщик удостоверений управляет такими вещами, как вход в систему, регистрация и доставка токенов доступа. Микросервис внешнего интерфейса содержит приложение angular. Таким образом, в обычном потоке пользователь аутентифицируется с помощью поставщика удостоверений, который, в свою очередь, открывает сеанс входа в систему, хранящийся в redis, и возвращает идентификатор сеанса в качестве повара ie. Поставщик удостоверений перенаправляет пользователя на интерфейсную службу, которая проверяет статус входа в систему, хранящийся в redis, и, только если аутентифицирован, возвращает приложение angular.

Итак, я не использую OAuth, потому что думаю, что не Мне это действительно нужно прямо сейчас. Также я не управляю аутентификацией на уровне шлюза. Хороший ли подход - иметь микросервис для входа в систему и redis для хранения сеанса, чтобы все другие микросервисы могли аутентифицировать пользователя при необходимости? Я вижу много примеров реализации аутентификации на уровне шлюза, так что это плохой подход - делегировать микросервис для аутентификации пользователя? Таким образом, шлюз работает только как маршрутизатор. Что вы думаете об этом?

1 Ответ

0 голосов
/ 04 августа 2020

Хранение сеанса пользователя в Redis - неплохая практика, однако использование Redis для авторизации / аутентификации может привести к проблемам с безопасностью. В идеальной микросервисной архитектуре сервисы должны быть максимально не привязанными к состоянию. Предоставляя задание авторизации redis, вы создаете дополнительный уровень, которым нужно управлять при каждом запросе. Что произойдет, если информация о пользователе изменится? Вам также нужно будет обновить Redis, и когда он не синхронизируется c с сервером авторизации, тогда начнут появляться проблемы. Также неплохо использовать отдельный сервер авторизации за шлюзом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...