【问题标题】:How do I secure my REST api developed in playframework如何保护我在 playframework 中开发的 REST api
【发布时间】:2013-08-06 09:20:08
【问题描述】:

我已经阅读了很多关于这里和其他文章的内容。先说明一下我的情况。

假设我有以下 REST 后端:

GET /user 以 JSON 格式返回所有用户。 (无需登录)
POST /user注册新用户。 (无需登录)
DELETE /user删除用户。 (您确实需要登录)

POST /login 发布登录凭据并在成功验证时返回 200 OK。这也会创建一个带有usernamesession

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

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

有效。我的问题不是关于这种授权/身份验证。然而,它是关于以下内容:

我想以某种方式保护“公共”API 调用,例如:GET /user,以便只有 我批准 的前端应用程序可以访问它们。

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

感谢您的宝贵时间。

【问题讨论】:

  • 登录和仅向已批准的客户授予访问权限是类似的事情。您必须保留所有已批准客户的列表。您还怎么知道客户端是否可以访问您的 API?此外,客户端必须以某种方式识别自己。此识别过程必须包含您与客户之间的秘密。否则,是什么阻止我告诉你:“嗨,我是客户 XY,给我 API!”,即使我不在你的名单上。这(在基本层面上)相当于基于用户名/密码的登录。或者提供“API 密钥”。
  • 所以我应该在我现在拥有的权限之下实现一个额外的基本授权级别,以便我的前端使用 ? 自动登录

标签: api security rest playframework


【解决方案1】:

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

参考来源在这里:https://github.com/jamesward/play-rest-security/

【讨论】:

  • 我实际上是在大约 2 小时前自己发现的。这与 Carsten 的评论相结合,对我很有帮助。
猜你喜欢
  • 2016-01-17
  • 1970-01-01
  • 2023-03-10
  • 2019-08-21
  • 2019-04-02
  • 2021-05-16
  • 2017-01-08
  • 2013-06-27
  • 2021-06-07
相关资源
最近更新 更多