Включить аутентификацию Spring JWT и аутентификацию OAuth2 в приложении Spring Boot

Я разрабатываю приложение для весенней загрузки, в котором пользователи могут зарегистрироваться в системе, предоставив необходимую информацию. Платформа должна предоставлять пользователям возможность аутентификации с помощью зарегистрированных учетных данных пользователя или учетных данных для входа в социальные сети (google/Facebook).

Для простой аутентификации пользователя я хочу создать простой почтовый запрос на сервер с именем пользователя и паролем, и после проверки сервер возвращает токен. Я не хочу использовать здесь форму входа в систему безопасности Spring.

Но для логики социальных сетей я считаю, что должен использовать oAuth.

Я новичок в Spring Boot и Spring Security. Нужно ли мне интегрировать аутентификацию JWT и аутентификацию OAuth для этого сценария? Предложение будет высоко оценено

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
262
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что ты. описание управления пользователями (регистрация пользователей, вход в систему, выход из системы) являются стандартными функциями серверов авторизации OAuth2/OpenID. Вы должны выбрать один «с полки» либо в помещении (например, Keycloak), либо в облаке (например, Auth0, Amazon Cognito и многие другие). Многие решения включают федерацию «социальных» удостоверений.

REST API — это серверы ресурсов. См. эти руководства для настройки безопасности и тестов с фиктивными удостоверениями.

Пользовательские интерфейсы — это клиенты. Вы должны использовать клиентскую библиотеку OAuth2 для обработки потоков OAuth2. Найдите один для своей платформы Spring имеет одну, если ваш пользовательский интерфейс создается на сервере с Thymeleaf или подобным, но есть библиотеки для Angular, React и других фреймворков, работающих в браузерах.

Клиентские библиотеки Spring OAuth2 также можно использовать в сценарии BFF (бэкенд для внешнего интерфейса), когда клиент браузера не является OAuth2 (он защищен сеансом, а не токеном доступа) и общается с приложением на сервере, который является клиентом OAuth2 ( spring-cloud-gateway — это образец, но вы также можете написать собственное приложение с помощью spring-boot-starter-oauth2-client). Это приложение переводит запрос с сеансом в запрос с токеном доступа, прежде чем перенаправить его на сервер ресурсов. Цель состоит в том, чтобы скрыть токены от Javascript в браузере.

Спасибо за ваш ответ. Это действительно полезно. Что, если я хочу внедрить свой собственный сервер аутентификации и авторизации (вместо использования стороннего поставщика) отдельно от входа в социальные сети? В таком случае, как я могу справиться со сценарием? Позвольте мне прояснить это подробнее 1. Мой собственный сервер аутентификации и авторизации (без стороннего поставщика) 2. Вход в социальные сети Как это возможно с одним приложением Spring Boot?

IsharaD 16.11.2022 15:34

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

ch4mp 16.11.2022 15:46

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