Как обеспечить безопасность межуслуговой связи в микросервисах?

#spring-boot #microservices

Вопрос:

Я работаю над Spring Boot Microservices проектом, задавая один вопрос в основном с точки зрения безопасности между межсервисными коммуникациями. В моем проекте у нас есть шлюз API, который проверяет все входящие запросы на наличие проблем с безопасностью, прежде чем направлять их соответствующим микросервисам. Шлюз API расположен между клиентскими приложениями и микросервисами. Затем он ограничивает доступ к микросервисам, предоставляя дополнительные функции управления запросами, такие как аутентификация, завершение SSL, перевод протокола, мониторинг, маршрутизация запросов, кэширование и многое другое.

Предположим, что случай Микросервиса1(MS1) gt;gt;gt; Микросервиса2(MS2) gt; gt; gt; gt; gt; gt; Микросервиса3(MS3), поскольку аутентификация и авторизация происходят на уровне API GW, то как мы можем обеспечить безопасность межсервисной связи? Что делать, если кто-то напрямую вызывает конечные точки MS2 или MS2 напрямую?

Ответ отдела ожидается здесь.

Ответ №1:

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

Комментарии:

1. Спасибо, Как мы можем определить, что токен MS1 не используется в MS2 и т. Д., Как вы убедитесь, что один Tx вызывает несколько микросервисов?

2. если каждая служба проверяет токен (например, с помощью открытого ключа эмитента), они могут 1. доверять утверждениям, 2. убедитесь, что на вызове есть подписанный токен. Вы можете перехватывать вызовы в обработчике (подробности указаны для каждой технологии) и делать это один раз в каждой службе