«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Аутентификация OAuth в Spring Boot: руководство по интеграции входа в Google и GitHub

Аутентификация OAuth в Spring Boot: руководство по интеграции входа в Google и GitHub

Опубликовано 3 ноября 2024 г.
Просматривать:220

Повысьте безопасность с помощью OAuth 2.0: реализация входа через социальные сети в Spring Boot

В мире современной веб-разработки безопасность ваших приложений и обеспечение максимально удобной аутентификации для пользователей являются главным приоритетом. Вот тут-то и появляется OAuth 2.0 — это мощный инструмент, который не только помогает защитить ваши API, но и позволяет пользователям входить в систему со своими существующими учетными записями с таких платформ, как Google и GitHub. Это упрощает задачу для всех: пользователям не нужно запоминать еще один пароль, а разработчики получают надежный способ управления аутентификацией.

В этом блоге я шаг за шагом расскажу вам, как настроить OAuth 2.0 в приложении Spring Boot. Мы будем интегрировать Google и GitHub для аутентификации, чтобы ваши пользователи могли выбирать, какую службу они хотят использовать для входа в систему. Я также покажу вам, как защитить конечные точки API с помощью JWT (веб-токены JSON), гарантируя, что только аутентифицированные пользователи могут получить доступ к ресурсам, к которым они должны иметь доступ.

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

Посетите https://start.spring.io/

создать проект

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Скачайте zip-архив, распакуйте его и загрузите проект в свою IDE.

Зависимость «OAuth2 Client» в Spring Boot упрощает интеграцию аутентификации OAuth 2.0 с такими поставщиками, как Google и GitHub. Он обрабатывает весь процесс входа в систему OAuth, включая перенаправление пользователей на страницу входа провайдера, управление токенами и защиту конечных точек API. Добавив эту зависимость, вы можете легко включить безопасную и удобную аутентификацию в своем приложении Spring Boot.

Зависимость «Spring Web» в Spring Boot имеет решающее значение для разработки веб-приложений. Он предоставляет такие важные функции, как создание RESTful API, поддержка архитектуры MVC и возможность обслуживания представлений HTML. С помощью Spring Web вы можете легко обрабатывать HTTP-запросы и ответы, управлять маршрутизацией и интегрироваться с другими компонентами Spring, что делает его основополагающей частью создания надежных веб-приложений.

Конфигурация приложения

Чтобы настроить приложение Spring Boot для аутентификации OAuth 2.0 с помощью Google и GitHub, вам необходимо настроить файл application.properties. Этот файл содержит основные настройки вашего приложения, включая учетные данные клиента OAuth, уровни ведения журнала и конфигурации JWT.

spring.application.name=oauth2-authentication-service
server.port=8000

#for google
spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID
spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET

#for github
spring.security.oauth2.client.registration.github.client-id=YOUR_GITHUB_CLIENT_ID
spring.security.oauth2.client.registration.github.client-secret= YOUR_GITHUB_CLIENT_SECRET

Конфигурации клиента OAuth: Замените YOUR_GOOGLE_CLIENT_ID, YOUR_GOOGLE_CLIENT_SECRET, YOUR_GITHUB_CLIENT_ID и YOUR_GITHUB_CLIENT_SECRET учетными данными, которые вы получаете от Google и GitHub при регистрации приложения.

Чтобы зарегистрировать ваше приложение в Google и GitHub для аутентификации OAuth 2.0, нам нужно перейти на https://console.cloud.google.com

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

нажмите «Службы API»

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Учетные данные -> создать учетные данные -> идентификатор клиента OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Идентификатор клиента OAuth -> Создать идентификатор клиента OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

выберите Тип приложения для веб-приложения

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

дайте название приложения

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

установите URI авторизованного перенаправления с этим URL-адресом, и здесь наше приложение работает на порту 8000, поэтому порт приложения равен 8000. затем нажмите «Создать»

http://localhost:8000/login/oauth2/code/google

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

после этого клиент OAuth будет создан и мы получим идентификатор клиента и секрет клиента.

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

скопируйте оба и замените свойствами файла application.properties

spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID
spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET

Класс SecurityConfig настраивает безопасность для приложения Spring Boot с использованием OAuth2. Он определяет компонент SecurityFilterChain, который устанавливает правила безопасности. Метод авторизацииHttpRequests гарантирует, что все входящие запросы требуют аутентификации. Строка .oauth2Login(Customizer.withDefaults()) включает функцию входа в систему OAuth2 с настройками по умолчанию. Наконец, метод securityFilterChain возвращает настроенную цепочку фильтров безопасности, вызывая http.build(). Такая настройка гарантирует безопасность приложения и поддерживает аутентификацию пользователей OAuth2.

Доступ к вашему приложению через Chrome

При разработке и тестировании приложения Spring Boot очень важно знать, как взаимодействовать с ним через Postman. Если ваше приложение работает локально на порту 8000, вы можете получить к нему доступ, используя следующий базовый URL-адрес:

http://localhost:8000

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

мы получаем такой же ответ

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

теперь мы можем получить доступ к конечным точкам.

Аутентификация GitHub

Аутентификация GitHub в Spring Boot позволяет пользователям входить в систему, используя свои учетные записи GitHub, что упрощает процесс аутентификации и повышает безопасность. Интегрировав GitHub в качестве поставщика OAuth 2.0, ваше приложение сможет аутентифицировать пользователей через доверенную платформу GitHub. Это включает регистрацию вашего приложения на GitHub для получения идентификатора клиента и секрета клиента, которые затем настраиваются в вашем приложении Spring Boot. Пользователи перенаправляются на GitHub для входа в систему, а после успешной аутентификации они перенаправляются обратно в ваше приложение с токеном доступа, обеспечивающим безопасный доступ к вашим защищенным ресурсам. Эта интеграция идеально подходит для приложений, ориентированных на разработчиков и технически подкованных пользователей.

создайте учетную запись GitHub и зайдите в настройки

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

в левом углу мы видим настройки разработчика

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Перейдите к приложениям OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

нажмите создать приложение OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

мы получим вот такой интерфейс

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

установите ** URL-адрес обратного вызова для авторизации ** в соответствии с портом вашего приложения

http://localhost:8000/login/oauth2/code/github

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

и установите URL домашней страницы

http://localhost:8000

после регистрации Приложения мы получаем Идентификатор клиента и секрет клиента

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

теперь замените свойствами файла Application.properties

spring.security.oauth2.client.registration.github.client-id=Ov23liBMLc5e1ItoONPx
spring.security.oauth2.client.registration.github.client-secret= 

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Проверьте вход в GitHub

Войти через GitHub: при появлении запроса войдите в систему, используя свои учетные данные GitHub.
Успешное перенаправление: после успешной аутентификации вы будете перенаправлены на домашнюю страницу вашего приложения.

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Вы можете изучить полный исходный код службы аутентификации пользователей в моем репозитории GitHub. В этом проекте демонстрируются различные функции, такие как регистрация пользователей, вход в систему и безопасный доступ с использованием JWT для аутентификации. Не стесняйтесь ознакомиться с ним, внести свой вклад или использовать его в качестве справочника для своих собственных проектов!

Репозиторий GitHub: https://github.com/ishrivasayush/oauth2-authentication-service

Заключение

Внедрение OAuth 2.0 с помощью Spring Boot с использованием Google и GitHub в качестве поставщиков аутентификации — это мощный способ повысить безопасность и удобство использования вашего приложения. Разрешая пользователям входить в систему со своими существующими учетными записями, вы уменьшаете трения и обеспечиваете более удобный пользовательский опыт. В то же время защита конечных точек API с помощью JWT гарантирует, что только прошедшие проверку подлинности пользователи будут иметь доступ к конфиденциальным ресурсам.

В этом руководстве мы рассмотрели все: от настройки учетных данных OAuth в Google и GitHub до настройки приложения Spring Boot для обработки аутентификации и защиты ваших конечных точек. Независимо от того, являетесь ли вы новичком в OAuth 2.0 или хотите интегрировать его в свои проекты, эти шаги помогут вам создать безопасную и масштабируемую систему аутентификации.

Безопасность — это бесконечный путь, но с помощью правильных инструментов и методов вы можете создавать безопасные и удобные для пользователя приложения. Теперь, когда у вас есть прочная основа, вы можете продолжить исследование, добавив больше поставщиков, настроив взаимодействие с пользователем или углубившись в конфигурации JWT. Приятного кодирования!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/ayushstwt/oauth-20-authentication-in-spring-boot-a-guide-to-integrating-google-and-github-login-2hga?1Если есть какие-либо нарушение, пожалуйста, свяжитесь с [email protected], чтобы удалить
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3