Есть несколько моментов для рассмотрения.Вы не предоставили подробную информацию о том, как ваши службы взаимодействуют, я предполагаю, что HTTP здесь.
Учитывая, что вы хотите защитить свои API, установка безопасности во внешнем интерфейсе делает ваш API уязвимым для тех, кто не использует ваш внешний интерфейс.Таким образом, в общем случае имеет смысл иметь общую базовую службу шлюза / безопасности, которая защищает ваши службы API.
Это может быть что-то вроде
Frontend <-> Gateway <-> Microservices
вместо
Frontend <-> Microservices
В то же время это даст вам возможность добавить более сложную оркестровку вашей сервисной архитектуры на более позднем этапе без настройки внешнего интерфейса.
Теперь, что касается аутентификации, passport.js предоставляет вам действительно простой в использовании интерфейс для добавления аутентификации во входящие запросы.Он поддерживает различные методы аутентификации, включая, но не ограничиваясь, OpenID connect (который, в свою очередь, работает с AWS / cognito).Вместе с express.js вы сможете использовать простую службу маршрутизации / безопасности с несколькими строками кода и возможностью расширять ее, добавляя дополнительные функции / средства безопасности по мере необходимости (например, вы можете добавитьобработка сеанса в какой-то момент или более связанные с безопасностью вещи, такие как защита XSS и т. д. Есть промежуточное программное обеспечение для express
, которое охватывает эти темы).
[править] Еще несколько sidenotes относительно безопасности.Возможно, стоит взглянуть на OWASP в целом и, в качестве более конкретной точки, начать с проекта ASWS OWASP , который предоставляет вам набор рекомендаций, которые вы могли бы / должнысоблюдать требования безопасности при разработке веб-приложений.Существует множество шпаргалок, в которых содержатся руководства / рекомендации по распространенным темам, таким как обработка сеансов, обработка файлов cookie, проверка подлинности и другие вопросы, связанные с безопасностью.