3

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

场景:当我的用户第一次尝试访问我网站上的任何 URL 时,我需要将他们重定向到 OAuth2 URL。一旦他们在那里通过身份验证,它会将他们重定向到我网站上的 URL,我需要在其中授权他们并创建一个会话,以便他们在我的网站上保持授权,直到他们注销或超时。

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

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

4

3 回答 3

3

OAuth2 并非旨在作为 SSO 解决方案。它主要是关于将代表您访问资源的权利委托给其他方(例如应用程序)。因此,如果这不是您需要的东西,那么也许您应该寻找一个更简单的解决方案。

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

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

于 2013-04-05T14:52:03.547 回答
2

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

于 2015-01-27T16:10:38.633 回答
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 示例来了解身份验证工作流程。

于 2013-04-05T14:47:13.353 回答