我一直在阅读有关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中执行身份验证。
请指向任何正确的文档资料,以掌握基础知识。预先感谢。
答案 0 :(得分:1)
这是现成的example。它根据授权服务器对客户端进行身份验证,还从资源服务器访问受保护的资源。
我仍在努力记录源代码并完成自述文件。如果您有任何疑问,请随时问我。