Spring Boot 2, Cloud Netflix и архитектура аутентификации по имени пользователя и паролю - PullRequest
0 голосов
/ 10 апреля 2020

Это вопрос архитектуры. Я хочу реализовать приложение, которое обрабатывает два типа пользователей (администратор и клиенты). Каждая роль может быть зарегистрирована следующими способами:

  • admin: регистрация имени пользователя / пароля
  • клиент: Facebook / Google / регистрация имени пользователя и пароля

На основе В роли пользователя у каждого из них есть определенное действие c, на которое он авторизован.

Из технологического стека я хочу использовать Java 8, Spring Cloud Netflix и позже Docker и Kubernetes (для автоматического исцеления и автоматического масштабирования).

Я реализовал Eureka discovery, сервер Config, Zuul Gateway и у меня есть два микросервиса для каждой роли (для начала). Я вообще не знаю, как подойти к аутентификации / авторизации пользователя, из того, что я вижу, Spring Security 5 больше не поддерживает сервер авторизации, и я должен использовать Keycloack? Должен ли шлюз быть сервером авторизации или я должен создать другой компонент, отвечающий за аутентификацию? Что я использую, как реализовать, как приблизиться к перенаправлению между моим сервером авторизации и бизнес-микросервисом?

Я не могу найти нужную документацию, в которой используются имя пользователя / пароль, логин в социальных сетях и Spring Cloud Netflix вместе с Spring Security 5.

Ответы [ 2 ]

1 голос
/ 11 апреля 2020
  1. Для обеспечения безопасности API после перехода на #Kubernetes вы можете использовать Envoy или аналогичное решение
  2. Для аутентификации и авторизации вам понадобится система управления идентификацией (например, #Okta или PingFederate или с открытым исходным кодом). версия, как #OpenIAM), а затем интегрировать с помощью Spring & OAUTH2.
1 голос
/ 11 апреля 2020

Ваш шлюз не должен отвечать за обработку аутентификации.

Одной из возможностей является использование проекта cas. Он может работать как микро сервис для обработки всего процесса аутентификации. Он может обрабатывать несколько методов аутентификации, таких как база данных (для имени пользователя / пароля) и социальных сетей, таких как Google или Facebook.

Он поставляется с базовой настройкой c, имеющей страницу входа и настроенный файл DockerFile. Вы можете настроить все. Просто добавьте соответствующую зависимость и добавьте конфигурацию в application.properties. Вы можете настроить интерфейс.

https://apereo.github.io/cas/6.1.x/planning/Getting-Started.html

Кстати: если вы используете kubernetes, вам не нужен шлюз или обнаружение служб с помощью eureka. Kubernetes делает это для вас.

...