Spring Security 3使用OAuth2进行SSO

时间:2013-04-05 14:22:24

标签: oauth spring-security single-sign-on

有没有人在Spring Security 3中实际使用OAuth2进行SSO?

方案: 当我们第一次尝试访问我网站上的任何网址时,我需要将我的用户重定向到OAuth2网址。在那里进行身份验证后,它会将其重定向到我网站上的网址,我需要在其中对其进行授权并创建会话,以便他们在我的网站上保持授权,直到他们退出或超时。

我在Spring Security中使用自定义预授权过滤器,自定义用户详细信息服务等尝试了几种配置,但我无法让流程正常工作。我没有附上任何代码,因为我经历了很多可能性,我甚至不确定要发布什么。

我很欣赏任何人都可以给予的任何指导。谢谢!

3 个答案:

答案 0 :(得分:3)

OAuth2不是SSO解决方案。它主要是将代表您访问资源的权利委托给其他方(例如,应用程序)。所以如果那不是你需要的东西那么也许你应该看一个更简单的解决方案。

可以使用OAuth2来访问提供身份信息的资源,在这种情况下,可以扩展它以进行身份​​验证。这就是OpenID connect使用它的方式(通过添加userinfo端点资源)。

您可能需要查看基于Spring Security OAuth构建的CloudFoundry中的UAA project,并以这种方式使用OAuth2来提供身份验证服务并向系统内的应用程序发出访问令牌。

答案 1 :(得分:2)

这似乎是一个有点死的问题,但这里有一些资源可能对未来searches有用:

答案 2 :(得分:1)

您的Oauth2提供商是谁?对于像Facebook,Twitter,谷歌等许多公众人士,您可以查看Spring Social项目。即使您使用某些私有提供商,也可以轻松添加(http://blog.springsource.com/2011/03/10/extending-spring-socials-service-provider-framework/开发Netflix服务提供商实施部分)。

Spring Social旨在覆盖您的主要案例,但有一些细微差别:默认情况下,您必须提交表单以启动身份验证过程。我认为这种差异可能很容易定制,以满足您的需求。

您可以使用Spring Social Showcase sample来了解身份验证工作流程。