【发布时间】:2013-08-06 09:20:08
【问题描述】:
我已经阅读了很多关于这里和其他文章的内容。先说明一下我的情况。
假设我有以下 REST 后端:
GET /user 以 JSON 格式返回所有用户。 (无需登录)POST /user注册新用户。 (无需登录)DELETE /user删除用户。 (您确实需要登录)
POST /login 发布登录凭据并在成功验证时返回 200 OK。这也会创建一个带有username 的session。
DELETE /login 注销,这会删除会话。
对于用户身份验证和角色,我使用 Deadbolt-2,例如,当首先调用 DELETE /user 时,将查看 session 以确定您是否已登录,然后使用 username 确定您是否已登录拥有正确的权限。
这有效。我的问题不是关于这种授权/身份验证。然而,它是关于以下内容:
我想以某种方式保护“公共”API 调用,例如:GET /user,以便只有 我批准 的前端应用程序可以访问它们。
我已经阅读了很多关于 api-keys、HMAC 和 oAuth 的内容。但在我看来,他们谈论的是第一种情况,而不是第二种情况。那么在我的情况下我该怎么做呢?
感谢您的宝贵时间。
【问题讨论】:
-
登录和仅向已批准的客户授予访问权限是类似的事情。您必须保留所有已批准客户的列表。您还怎么知道客户端是否可以访问您的 API?此外,客户端必须以某种方式识别自己。此识别过程必须包含您与客户之间的秘密。否则,是什么阻止我告诉你:“嗨,我是客户 XY,给我 API!”,即使我不在你的名单上。这(在基本层面上)相当于基于用户名/密码的登录。或者提供“API 密钥”。
-
所以我应该在我现在拥有的权限之下实现一个额外的基本授权级别,以便我的前端使用 ? 自动登录
标签: api security rest playframework