如何保护我在Play框架中开发的REST API

时间:2013-08-06 09:20:09

标签: api security rest playframework

我在这里和其他文章上已经阅读了很多相关内容。首先让我解释一下我的情况。

假设我有以下REST后端:

GET /user返回JSON中的所有用户。 (无需登录)
POST /user注册新用户。 (无需登录)
DELETE /user删除用户。 (您执行需要登录)

POST /login发布登录凭据并在成功验证时返回200 OK。此外,这会创建一个session username

DELETE /login注销,这会删除会话。

对于用户身份验证和角色,我使用Deadbolt-2,例如,当首先调用DELETE /user时,将查看session以确定您是否已登录,然后username用于确定您是否拥有正确的权限。

有效。我的问题不是这种授权/认证。但是有以下几点:

我想以某种方式保护“公共”API调用,例如:GET /user,因此只有 我认可的 的前端应用才能访问它们。

我已经阅读了很多关于api-keys和HMAC以及oAuth的内容。但在我看来,他们谈论的是第一个场景,而不是第二个场景。那么在我的情况下我该怎么做呢?

感谢您的时间。

1 个答案:

答案 0 :(得分:16)

您可能会发现Securing Single Page Apps and REST Services这篇James Ward文章很有用,它是使用Play Framework,Java,jQuery和CoffeeScript构建的。

参考来源位于:https://github.com/jamesward/play-rest-security/