Аутентификация в микросервисах с помощью spring

Я хочу реорганизовать монолитное загрузочное приложение Spring, в основном веб-приложение с логином и функциями для клиентов. У нас уже есть реализация безопасности, которая работает с идентификатором сеанса, хранящимся в виде файла cookie, но я совсем не разбираюсь в этом, и я совершенно новичок в этой теме. Кажется, что JWT — лучшее решение для микросервисов из-за независимой службы аутентификации.

Итак, мои вопросы:

  • это много работы для создания службы аутентификации JWT и обмена реализацией идентификатора сеанса? (так как я делаю это для своей бакалаврской диссертации и у меня есть четкий срок)

  • могу ли я оставаться на идентификаторах сеансов при использовании микросервисов?

  • есть ли другие способы реализовать аутентификацию?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
0
1 695
2

Ответы 2

is it alot of work to create a JWT authentication service and exchange the session id implemenation? (since im doing it for my bachelor thesis and have a clear deadline)

На этот вопрос сложно ответить, так как это зависит от того, насколько тесно связана ваша конкретная реализация. Это конечно не тривиально.

can I stay at the session ids while using microservices?

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

are there maybe other ways to implement authentication?

Столько, сколько длится день. При этом, без особых причин поступать иначе, я обычно предпочитаю придерживаться середины дороги.

Типичные пользовательские сеансы не рекомендуются в микросервисах. Следует использовать архитектуру без сохранения состояния и токены (токены хранятся в базе данных или JWT).

Лучше использовать Весенняя загрузка OAuth2.

Вы должны реализовать сервер авторизации и серверы ресурсов с помощью Spring Boot.

Сервер авторизации:

  1. Выберите способ хранения токенов (JWT, Jdbc,...)
  2. Настройка сведений о клиенте
  3. Добавьте RESTful API для информации о пользователе или включите /oauth/check_token API. (Вызывается серверами ресурсов)

Серверы ресурсов:

  1. Установите user-info-uri или token-info-uri в свойствах Spring boot OAuth2.
  2. Расширяет класс ResourceServerConfigurerAdapter для защиты сопоставлений URL.

в данный момент весь монолит работает с пользовательскими сессиями. Моя миссия состоит в том, чтобы создать прототип одной службы и запустить ее независимо с собственной базой данных и т. д. Много ли работы, чтобы изменить весь материал авторизации/аутентификации, будучи полным новичком?

Julzz 13.03.2019 15:36

Я могу помочь вам изменить механизм авторизации. Во-первых, вам следует прочитать справочник Spring Boot OAuth2.

Masht Metti 13.03.2019 17:29

Если вы хотите использовать обычные сеансы, используйте репликацию сеансов.tomcat.apache.org/tomcat-8.0-doc/cluster-howto.h‌​tml

Masht Metti 13.03.2019 17:31

Другие вопросы по теме

Я хочу изменить вид страницы в зависимости от того, является ли пользователь администратором
Django не распознает тип пользователя моего пользовательского пользователя для входа в защищенное представление страницы (RelatedObjectDoesNotExist: у пользователя нет типа пользователя)
Аутентификация пользователя Hapi.js с проблемой mongodb
Некоторые файлы cookie блокируются междоменными при использовании запроса ajax
Идентифицировать пользователя на бэкэнде и внешнем интерфейсе, используя токены для аутентификации
Как лучше всего использовать Oauth2, React, Node.js и Passport.js для аутентификации пользователя с помощью кнопки входа в Google?
Nuxt auth с гостевым и промежуточным программным обеспечением auth перенаправляет аутентифицированного пользователя при обновлении на неправильную страницу
Как сделать единую авторизацию для нескольких проектов в laravel?
Однократная HTTP-дайджест-аутентификация
Как добавить x-xsrf-токен с помощью HttpClientXsrfModule angular 6