【发布时间】:2011-09-24 01:24:39
【问题描述】:
我正在使用类似 REST 的 API 构建数据交换服务器。它不是严格的 RESTful,因为服务器持有一些状态,但我离题了。会话是使用 HTTP 身份验证和预先分配的 API 密钥的组合构建的。 API 密钥允许服务器控制客户端可以访问哪些资源,以及他们在使用它时可以采取哪些操作。
- 每个用户可以有多个密钥,但每个会话只能有一个。
- 某些密钥必须具有“平面”权限:它们只能查看和操作它们单独存储或以其他方式创建的数据。
- 其他键具有分层或基于角色的权限:除了查看和操作从属于它们的键之外,它们还可以执行平面键所能做的所有事情。
- 将来,某些密钥可能会被赋予特殊权限来创建、注册和委托他们自己的从属密钥。
- 总的来说,对所有资源的所有访问都将在“默认拒绝”的基础上授予。
考虑到这些要求并牢记面向未来,我必须采取哪些选择来实现这一目标?我看过很多基于 ACL 和/或基于角色的访问控制的解决方案,但是我遇到的解决方案都没有能力进行这种细粒度的访问控制。
【问题讨论】:
标签: php authentication rest access-control