【问题标题】:Fine-grained Permissions to resources on a REST API serverREST API 服务器上资源的细粒度权限
【发布时间】:2011-09-24 01:24:39
【问题描述】:

我正在使用类似 REST 的 API 构建数据交换服务器。它不是严格的 RESTful,因为服务器持有一些状态,但我离题了。会话是使用 HTTP 身份验证和预先分配的 API 密钥的组合构建的。 API 密钥允许服务器控制客户端可以访问哪些资源,以及他们在使用它时可以采取哪些操作。

  • 每个用户可以有多个密钥,但每个会话只能有一个。
  • 某些密钥必须具有“平面”权限:它们只能查看和操作它们单独存储或以其他方式创建的数据。
  • 其他键具有分层或基于角色的权限:除了查看和操作从属于它们的键之外,它们还可以执行平面键所能做的所有事情。
  • 将来,某些密钥可能会被赋予特殊权限来创建、注册和委托他们自己的从属密钥。
  • 总的来说,对所有资源的所有访问都将在“默认拒绝”的基础上授予。

考虑到这些要求并牢记面向未来,我必须采取哪些选择来实现这一目标?我看过很多基于 ACL 和/或基于角色的访问控制的解决方案,但是我遇到的解决方案都没有能力进行这种细粒度的访问控制。

【问题讨论】:

    标签: php authentication rest access-control


    【解决方案1】:

    我最终简化了系统要求:我没有使用 API 密钥作为会话标识符,而是采用了完整的“RESTful”路由,并针对旨在处理它的 LDAP 后端对每个请求进行了身份验证。

    对于授权,我使用了用户在 LDAP 中分配的组集合作为用户拥有的“角色”。它不像最初的设计那样灵活,但它足够实用,我可以在将来更改应用程序层,而不用担心设置后移植用户和权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多