我正在考虑为我的应用程序使用OAuth2。我想实现的架构如下:Spring引导OAuth2单一登录(注销)
- 我会有我自己的(和仅此)授权服务器
- 一些资源应用程序使用授权服务器
- 某些客户端验证访问其资源将用户重定向到Authorization Server以进行身份验证和成功的应用程序(web,mobile)将消耗资源应用程序上的api。
到目前为止,我已经设法实现了3个基本应用程序(1个auth服务器,1个资源服务器和1个客户端)之间的这种交互。我不能工作的是注销功能。我读过Dave Syer在他的教程中描述的"notoriously tricky problem",但在这种情况下,我真的需要用户在注销后重新登录。我已经尝试给访问令牌和刷新令牌几秒钟,但是当到期到期时不再提示再次登录,我在客户端应用程序中获得了NPE。我也尝试了在此post中提出的解决方案,以从令牌存储中删除令牌,但它不起作用。单次签名对我来说是这个实现的理想行为。我如何使用Spring Boot Oauth2来实现这一点。如果由于某种原因无法实现,那么我可以使用哪种替代方法来实现使用Spring Boot的集中安全性?
在此先感谢。
这个简单的答案让我成为一个简单的解决方案。 –
这段代码在做什么?从客户端应用程序(网站)登出从一个授权服务器注销用户?这是否意味着当用户登录到多个客户端应用程序时,从其中一个应用程序注销会导致从所有客户端应用程序注销? – eugene
@eugene我已经使用2个客户端应用程序测试过这个解决方案,并且从一个注销时不会影响另一个。此解决方案所做的是,当您单击注销并再次单击登录时,您必须重新输入凭据。是解决[[臭名昭着的棘手问题]]的替代方法](https://spring.io/blog/2015/02/03/sso-with-oauth2-angular-js-and-spring-security-part-v#在-注销体验)。 –