首页 > 解决方案 > Spring Boot Security 中 OAuth2Client 中的 SSO

问题描述

我一直在阅读 Spring Security 中的 OAuth2 集成以及如何通过第三方身份提供者(例如 Google)实现身份验证/授权。

我使用注释实现了 SSO 登录@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 文档,它只是说它是一个接口,但仍然不确定它到底是什么以及它是如何使用的。

我是否遗漏了什么或官方文件不足?我仍然无法掌握 OAuth2ClientContext、OAuth2ClientAuthenticationProcessingFilter 和 OAuth2RestTemplate 如何协同工作以通过 SSO 在 Spring 中执行身份验证。

请指出任何正确的文档,以掌握基本知识。提前致谢。

标签: javaspringspring-bootspring-securityspring-security-oauth2

解决方案


这是一个准备运行的示例。它针对授权服务器对客户端进行身份验证,还从资源服务器访问受保护的资源。

我仍在努力记录源代码并完成自述文件。如果您有任何问题,请随时问我。


推荐阅读