Я читал об интеграции OAuth2 в Spring Security и о том, как Аутентификация / Авторизация реализуется с помощью стороннего поставщика удостоверений (например, Google).
Я достиг единого входа, используя аннотацию @EnableOauth2Sso
и добавив следующее к своему application.properties
:
security:
oauth2:
client:
clientId: 8d...f5e
clientSecret: 2d...1b
accessTokenUri: https://sso.domain.com/oauth/token
userAuthorizationUri: https://sso.domain.com/oauth/authorize
scope: openid
resource:
userInfoUri: https://sso.domain.com/userinfo
Это казалось слишком волшебным, и я понятия не имел, что происходит под капотом. Следуя руководству на официальном сайте Spring для Ручная настройка клиента OAuth2 Я вижу, что он переключается на @EnableOauth2Client
вместо @EnableOauth2Sso
и говорит:
Прежде всего, мы можем внедрить OAuth2ClientContext и использовать его для создания фильтра аутентификации, который мы добавляем в нашу конфигурацию безопасности
Что такое OAuth2ClientContext
? Я проверил официальный API Docs , и он просто говорит, что это интерфейс, но все еще не уверен, что это такое и как он используется.
Я что-то упустил или официальной документации недостаточно? Я все еще не могу понять, как OAuth2ClientContext, OAuth2ClientAuthenticationProcessingFilter и OAuth2RestTemplate работают вместе для выполнения аутентификации в Spring через SSO.
Пожалуйста, укажите на любые правильные фрагменты документации, чтобы понять это до основ. Заранее спасибо.