【发布时间】:2012-01-22 16:21:59
【问题描述】:
我想构建以下项目:
- 任何经过身份验证的客户端都可以访问的公共 REST API 后端
- 带有 HTML/CSS/Javascript 静态文件的前端,带有 Backbone.js 对 REST 后端的 jQuery 调用
实际上,我的架构中有三方:前端,它是后端的客户端,后端和要在前端登录页面上进行身份验证的用户。
保护此架构中涉及的三方的最佳方法是什么?
事实上,如果我在 javascript 中做所有事情,我认为在前端做一个安全的应用程序是不可能的,所以我打算将身份验证/授权委托给我的服务器前端的代理层。你怎么看?
我打算使用 OAuth 来保护我的 REST 后端,但我不确定是否必须使用 2 或 3 腿实现。在这种情况下,正确的做法是什么?
更新:在 SO 网站上进行更深入的搜索时,我发现了这个 thread,这正是我想做的,除了我想在服务器端使用 Java 而不是 DotNet。如果我理解得很好,实际上我的网站就像我的 REST API 的任何客户端,除了它是唯一有权创建新用户帐户的客户端。因为,如果我的 REST API 只能通过 OAuth 访问(如 Twitter 的 API),那么之前谁能执行用户帐户创建?我说的对吗?
【问题讨论】:
-
您是正确的,在 js 中完成的任何身份验证/授权都是毫无价值的,因为用户可以将其关闭或欺骗它。
-
@rico 仅供参考,您也许可以在security.stackexchange.com 获得更多答案。
-
@Thomas,它和客户端表单验证一样毫无价值。
-
事实上,我的问题是我不知道如何通过简单的用户名/密码(或openid)执行身份验证并在客户端执行授权(使用OAuth?)。
标签: java javascript security rest architecture