Введение

Spring Security уже много лет является основной средой для защиты приложений на базе Spring. Одной из многих мощных функций Spring Security является обширная поддержка OAuth2. Этот протокол аутентификации позволяет пользователям разрешать взаимодействие одного приложения с другим от их имени, не раскрывая свой пароль. Для реализации OAuth2 в приложениях на основе Spring Spring Security предоставляет набор мощных аннотаций, которые упрощают настройку. В этом посте мы подробно рассмотрим некоторые из таких важных аннотаций, как @EnableOAuth2Sso и @EnableResourceServer.

Введение в OAuth2

OAuth2, сокращение от Open Authorization версии 2, представляет собой структуру авторизации, которая стала отраслевым стандартом для безопасной авторизации веб-сервисов. Это позволяет стороннему приложению получать ограниченный доступ к службе HTTP либо от имени владельца ресурса, либо позволяя стороннему приложению получать доступ от своего имени.

Краткая история

OAuth2 — это переработанная версия своего предшественника OAuth (открытая авторизация), созданная в 2006 году. Целью OAuth2 было развитие успеха OAuth, предоставляя более упрощенную, гибкую и мощную структуру для безопасного делегирования и авторизации веб-сервисов.

OAuth2 против традиционной аутентификации

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

Ключевые компоненты OAuth2

В OAuth2 термин «владелец ресурса» относится к пользователю, который имеет полномочия предоставлять доступ к некоторой части данных или функциям, по сути «владея» рассматриваемым ресурсом. Представьте, что вы используете фитнес-приложение, которое хочет получить доступ к вашему календарю, чтобы предложить время тренировок. Вы, как пользователь, являетесь владельцем ресурса…