Как правильно использовать экспресс-шлюз для аутентификации веб-приложения?

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

Мое веб-приложение будет иметь несколько микросервисов, с которыми оно будет общаться. Я думал, что размещение шлюза API перед всеми моими микросервисами сделает так, что каждому микросервису не нужно будет беспокоиться о том, аутентифицирован ли пользователь / запрос или нет, потому что если с микросервисом обращаются к нему, это означает, что шлюз API подтвердил, что запрос был действительным пользователем. Правильно ли мое понимание этого?

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

Означает ли это, что все создание и аутентификация пользователя выполняется шлюзом API? Это означает, что у меня не было бы никаких пользовательских микросервисов для создания / входа пользователей? Или у меня был бы общедоступный доступ через микросервис создания пользовательских шлюзов api, который при создании сам создавал бы учетные записи пользователей внутри шлюза api? Является ли теперь информация пользователя дублируемой моим микросервисом в базе данных и в собственном хранилище экспресс-шлюза? Я предполагаю, что мое общее замешательство заключается в том, берет ли шлюз API роль аутентификации / создания пользователя полностью за пределы собственных микросервисов веб-приложения, или вам все еще нужны обе части?

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

1 ответ

Решение

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

Правильно ли мое понимание этого?

Да, ты понял. Если вы посмотрите видео, вы можете увидеть эту концепцию и на практике.

От хранения такого рода зависит.

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

Теперь о функциях - где хранить данные, это зависит от вас. Вы можете хранить некоторые данные в Express Gateway, а некоторые - в своей собственной базе данных или полностью в EG. Здесь нет хорошей или плохой стратегии.

Другие вопросы по тегам