SSO в OAuth2Client в Spring Boot Security - PullRequest
1 голос
/ 31 марта 2019

Я читал об интеграции 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.

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

1 Ответ

1 голос
/ 01 апреля 2019

Вот готовый к запуску пример . Он аутентифицирует клиента на сервере авторизации, а также обращается к защищенному ресурсу с сервера ресурсов.

Я все еще работаю над документированием исходного кода и выполнением README. Если у вас есть вопросы, не стесняйтесь спрашивать меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...