Сеансы
Современные приложения должны быть без состояний, чтобы они могли масштабироваться. Когда пользователи проходят аутентификацию, им выдается токен, и каждый отдельный запрос будет содержать этот токен (токен JWT) в заголовке запроса. Обычно токены имеют срок действия, связанный с ними, и шлюз может перенаправлять на любой экземпляр приложения. Маркер несет все, что им нужно для аутентификации.
Проверка токена / сеанса
Вам необходимо проверить сеанс на шлюзе, и это предпочтительный подход. Но это действительно зависит от вашего дизайна. Если у вас есть службы за шлюзом API и есть какой-либо доступ publi c, то, безусловно, токен должен быть проверен в каждом приложении / услуге. Если ваши услуги являются частными, вы можете проверить токен только на Api Gateway и отклонить неподтвержденные запросы.
Собственные облачные шлюзы (например, AWS Api Gatway) могут проверять токен без написания дополнительного кода, если вы используете известных провайдеров идентификации, таких как (auth0, Okta et c). Если требуются пользовательские утверждения, возможно, вам потребуется написать logi c в вашем приложении или использовать собственные библиотеки для получения пользовательских утверждений из токена. Я верю, что во всем этом сценарии вам не понадобятся дополнительные микросервисы для Auth, если вы не хотите написать свой собственный сервис для выпуска и проверки токенов, что, на мой взгляд, не очень хорошая идея.