Spring 引导安全中的 OAuth2Client 中的 SSO
SSO in OAuth2Client in Spring Boot Security
我一直在阅读 Spring 安全中的 OAuth2 集成以及如何通过第三方身份提供商(例如 Google)实施 Authentication/Authorization。
我使用 @EnableOauth2Sso
注释实现了 SSO 登录,并将以下内容添加到我的 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 官方网站上 Manual Configuration of OAuth2 Client 的指南,我看到它切换到 @EnableOauth2Client
而不是 @EnableOauth2Sso
,它说:
First off we can inject an OAuth2ClientContext and use it to build an authentication filter that we add to our security configuration
什么是OAuth2ClientContext
?我查看了官方 API Docs,它只是说它是一个接口,但仍然不确定它到底是什么以及它是如何使用的。
是我遗漏了什么还是官方文档不够?我仍然无法掌握 OAuth2ClientContext、OAuth2ClientAuthenticationProcessingFilter 和 OAuth2RestTemplate 如何协同工作以通过 SSO 在 Spring 中执行身份验证。
请指向文档中任何正确的部分,以从根本上理解这一点。提前致谢。
这是一个现成的-运行example。它根据授权服务器对客户端进行身份验证,还从资源服务器访问受保护的资源。
我仍在努力记录源代码并完成自述文件。如果您有任何问题,请随时问我。
我一直在阅读 Spring 安全中的 OAuth2 集成以及如何通过第三方身份提供商(例如 Google)实施 Authentication/Authorization。
我使用 @EnableOauth2Sso
注释实现了 SSO 登录,并将以下内容添加到我的 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 官方网站上 Manual Configuration of OAuth2 Client 的指南,我看到它切换到 @EnableOauth2Client
而不是 @EnableOauth2Sso
,它说:
First off we can inject an OAuth2ClientContext and use it to build an authentication filter that we add to our security configuration
什么是OAuth2ClientContext
?我查看了官方 API Docs,它只是说它是一个接口,但仍然不确定它到底是什么以及它是如何使用的。
是我遗漏了什么还是官方文档不够?我仍然无法掌握 OAuth2ClientContext、OAuth2ClientAuthenticationProcessingFilter 和 OAuth2RestTemplate 如何协同工作以通过 SSO 在 Spring 中执行身份验证。
请指向文档中任何正确的部分,以从根本上理解这一点。提前致谢。
这是一个现成的-运行example。它根据授权服务器对客户端进行身份验证,还从资源服务器访问受保护的资源。
我仍在努力记录源代码并完成自述文件。如果您有任何问题,请随时问我。