2013-04-05 102 views
2

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

场景: 我需要我的用户在他们第一次访问我的网站上的任何URL时被重定向到OAuth2 URL。一旦他们在那里得到认证,它就会将他们重定向到我网站上的URL,我需要授权他们并创建一个会话,以便他们在我的网站上保持授权,直到他们注销或超时。

我已经尝试过使用自定义预先验证过滤器,自定义用户详细信息服务等的Spring Security中的多个配置,但我无法使流程正常工作。我没有附加任何代码,因为我经历了很多可能性,我甚至不知道要发布什么。

我很感谢任何人可以给的方向。谢谢!

回答

1

谁是你的Oauth2提供者?在一些像Facebook,Twitter,Google和其他公共场合的案例中,您可以看看Spring Social项目。即使您使用某个私人提供商,您也可以非常轻松地添加它(http://blog.springsource.com/2011/03/10/extending-spring-socials-service-provider-framework/,开发Netflix服务提供商实施部分)。

Spring Social旨在覆盖您的主要案例,但存在一些细微差别:默认情况下,您必须提交表单才能开始验证过程。我认为这种差异可能很容易根据您的需求进行定制。

您可以与Spring Social Showcase sample一起玩关于认证工作流程的想法。

3

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

可以使用OAuth2来访问提供有关您的身份信息的资源,在这种情况下,可以将其用于身份验证使用。这是OpenID connect如何使用它(通过添加userinfo端点资源)。

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

+0

谢谢你的回应!不幸的是,尽管我不需要访问该网站上的资源,但我认为我使用此oauth资源进行了单一登录身份验证... 但是,我会看看UAA项目,看看是否我可以在那里建立任何东西。谢谢! – Tyrone 2013-04-05 18:02:40

相关问题