Как настроить Spring бэкэнд с JWT и Kubernetes - PullRequest
0 голосов
/ 02 апреля 2019

Я реализовал бэкэнд Spring, который отвечает за хранение различных данных (пользователей, лекций, ...).Этот бэкэнд защищен с помощью JWT, и все работает нормально.В своих исследованиях я хочу улучшить бэкэнд и теперь я хочу использовать микросервисную архитектуру вместо монолита.Для этого у меня есть требования использовать Docker и Kubernetes.Я всегда читаю статьи, в которых пишется, что мне нужен Сервер авторизации и Сервер Ресурсов, когда я хочу использовать JWT в микросервисной архитектуре.Это верно?И нужен ли мне шлюз (например, Zuul) для моих целей?Может кто-нибудь помочь мне структурировать проект и дать совет по технологическому стеку.В конце весь проект будет работать на одном сервере.

Я реализовал молекулярный бэкэнд, защищенный с помощью JWT.

1 Ответ

0 голосов
/ 03 апреля 2019

Kubernetes официально поддерживает аутентификацию на сервере API в JSON Web-токенах (JWT) через OpenID Connect с использованием протокола OAuth 2.0 для идентификации пользовательских запросов.Однако это только часть модели Authorization , которая определяет, как аутентифицированному пользователю могут быть предоставлены соответствующие политики или роли безопасности для управления ресурсами кластера Kubernetes.

Для создания или миграции приложениядля Kubernetes вы можете рассмотреть возможность предоставления приложения вне кластера, для этого Ingress передает запросы на точную службу путем сопоставления пути запроса.Фактически, Ingress является логическим элементом ресурса, который описывает набор правил для управления трафиком через Ingress Controller .Следовательно, контроллер Ingress может играть роль шлюза API, предоставляя сетевые средства L7, такие как: балансировка нагрузки, SSL-завершение и маршрутизация трафика HTTP / HTTPS для вложенных служб приложений.

Как вы упомянули Zuul шлюз может быть одним из вариантов сервиса пограничного прокси перед кластером Kubernetes, однако я бы порекомендовал поискать некоторые решения, ориентированные на Kubernetes. Istio является хорошим примером, так как он предоставляет широкий набор функций сетевого маршрутизатора с довольно простой интеграцией в кластер Kubernetes благодаря своей базовой схеме обслуживания .Istio обеспечивает аутентификацию конечного пользователя через JWT в рамках объявленной аутентификации policy .

В качестве альтернативы, вы также можете воспользоваться функциями Nginx plus с объявленной аутентификацией JWT.

...