Api首页和单页应用程序

时间:2013-03-25 14:45:43

标签: security rest web oauth single-page-application

我正在构建一个单页面应用程序和一个REST API来处理来自客户端和任何可能的第三方客户端的请求。

我的想法是创建三台服务器:

  • A - API,基于OAuth
  • B - 带有html / css / js文件和部分/视图的静态
  • C - 处理登录的Web服务器(节点或python或任何东西)

可能是第四个处理与Redis或其他任何事情的会议。

我希望SPA让用户注册和/或登录服务器C,给他一个访问令牌,让他直接与API(A)通话。

我的问题是处理这个问题的正确机制是什么?

  • 将内置访问令牌的会话cookie设置为主应用程序客户端(SPA),以便只要会话存在,它就可以与REST API通信
  • 为避免在服务器A中创建服务器C和处理身份验证,(那么第三方服务呢?)
  • 其他

我的问题有点乱,请随时向我询问更多细节。

1 个答案:

答案 0 :(得分:0)

您基本上描述的是“票务”系统,只有您将票证称为“令牌”。多年来,这个问题已经用不同的标准化协议以不同的方式处理。麻省理工学院开发的一个非常流行的开放标准是Kerberos

如果可能,我强烈建议使用现有协议和现有实施。试图“推出自己的”安全性是非常非常困难的,并且通常会导致易受攻击的应用程序。想想那些多年来困扰微软的瘟疫,与* nix系统相对安全的声誉相比: - )

我的第一种方法是采用Kerberos或其他类似的协议。如果你已经开始自己滚动,那么越简单就越好。我会选择你的第二个解决方案和废弃服务器C.当让不同的服务器执行身份验证时,有太多的错误空间。

我知道这不是你所希望的答案,但我希望它有所帮助。