Повысьте безопасность с помощью 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/
создать проект
Скачайте 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
нажмите «Службы API»
Учетные данные -> создать учетные данные -> идентификатор клиента OAuth
Идентификатор клиента OAuth -> Создать идентификатор клиента OAuth
выберите Тип приложения для веб-приложения
дайте название приложения
установите URI авторизованного перенаправления с этим URL-адресом, и здесь наше приложение работает на порту 8000, поэтому порт приложения равен 8000. затем нажмите «Создать»
http://localhost:8000/login/oauth2/code/google
после этого клиент OAuth будет создан и мы получим идентификатор клиента и секрет клиента.
скопируйте оба и замените свойствами файла 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
мы получаем такой же ответ
теперь мы можем получить доступ к конечным точкам.
Аутентификация GitHub в Spring Boot позволяет пользователям входить в систему, используя свои учетные записи GitHub, что упрощает процесс аутентификации и повышает безопасность. Интегрировав GitHub в качестве поставщика OAuth 2.0, ваше приложение сможет аутентифицировать пользователей через доверенную платформу GitHub. Это включает регистрацию вашего приложения на GitHub для получения идентификатора клиента и секрета клиента, которые затем настраиваются в вашем приложении Spring Boot. Пользователи перенаправляются на GitHub для входа в систему, а после успешной аутентификации они перенаправляются обратно в ваше приложение с токеном доступа, обеспечивающим безопасный доступ к вашим защищенным ресурсам. Эта интеграция идеально подходит для приложений, ориентированных на разработчиков и технически подкованных пользователей.
создайте учетную запись GitHub и зайдите в настройки
в левом углу мы видим настройки разработчика
Перейдите к приложениям OAuth
нажмите создать приложение OAuth
мы получим вот такой интерфейс
установите ** URL-адрес обратного вызова для авторизации ** в соответствии с портом вашего приложения
http://localhost:8000/login/oauth2/code/github
и установите URL домашней страницы
http://localhost:8000
после регистрации Приложения мы получаем Идентификатор клиента и секрет клиента
теперь замените свойствами файла Application.properties
spring.security.oauth2.client.registration.github.client-id=Ov23liBMLc5e1ItoONPx spring.security.oauth2.client.registration.github.client-secret=
Проверьте вход в GitHub
Войти через GitHub: при появлении запроса войдите в систему, используя свои учетные данные GitHub.
Успешное перенаправление: после успешной аутентификации вы будете перенаправлены на домашнюю страницу вашего приложения.
Вы можете изучить полный исходный код службы аутентификации пользователей в моем репозитории 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. Приятного кодирования!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3