多个子域上的Web应用程序身份验证

时间:2014-05-05 21:42:24

标签: java javascript web-services web spring-security

我们正在使用spring-mvc和spring-security开发基于Web的应用程序。

简单地说,这个应用程序将在主域foo.com上运行一个网站

foo.com将只是一个漂亮的shell,它将从api.foo.com获取它的数据(使用javascript),这将是我们的REST API。

api.foo.com也将被开发的移动应用程序使用,并将使用OAuth 2进行身份验证流程。

当用户登录foo.com时,他将使用基于cookie的系统进行身份验证。

我们想知道什么是一个很好的解决方案,让已经登录使用的api.foo.com以经过验证的方式使用?

是否应该重复使用cookie并随每个请求一起发送?我们已经读过cookie + CORS在不同的域上不能很好地发挥作用于子域名吗?

我们一直在考虑让登录用户的cookie在幕后使用OAuth来访问api.foo.com。 因此,当用户对自己进行身份验证时,将向javascript代码提供访问令牌,该代码将使用相同的令牌在api.foo.com上识别自己

1 个答案:

答案 0 :(得分:1)

我们有类似的框架,但我们使用HMAC进行API授权。我想你可以用类似的方式在cookie中使用代码。 HMAC就像OAuth之光,但它可能适用于这种情况。

以下是一些链接: http://en.wikipedia.org/wiki/Hash-based_message_authentication_code http://massimilianosciacco.com/implementing-hmac-authentication-rest-api-spring-security