Spring Boot Security中的OAuth2Client中的SSO

时间:2019-03-31 14:51:15

标签: java spring spring-boot spring-security spring-security-oauth2

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

我使用@EnableOauth2Sso注释并将以下内容添加到我的application.properties中来实现SSO登录:

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官方网站上的Manual Configuration of OAuth2 Client指南,我看到它切换到@EnableOauth2Client而不是@EnableOauth2Sso,它说:

  

首先,我们可以注入OAuth2ClientContext并将其用于构建身份验证过滤器,并将其添加到安全配置中

什么是OAuth2ClientContext?我检查了官方的API Docs,它只是说这是一个接口,但仍不确定它的确切含义和用法。

我是否缺少某些东西或官方文件不足?我仍然无法掌握OAuth2ClientContext,OAuth2ClientAuthenticationProcessingFilter和OAuth2RestTemplate如何协同工作以通过SSO在Spring中执行身份验证。

请指向任何正确的文档资料,以掌握基础知识。预先感谢。

1 个答案:

答案 0 :(得分:1)

这是现成的example。它根据授权服务器对客户端进行身份验证,还从资源服务器访问受保护的资源。

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