0

我目前正在设计一个支持多种类型的用户角色的 REST 样式的 SQL 支持的 Web 应用程序。我正在寻找为它实现既简单又强大的授权抽象的想法。

系统中的分层角色将遵循以下原则:

superuser/admin -> group owner -> group user

这个系统的一个真实世界的例子是:“我是一名学校管理员,我有我管理的老师,他们都有包含学生的班级”。

我在考虑 UNIX 模型的思路,除了一个管理员的数据孤岛不能与另一个管理员的重叠。在上面的示例中,一所学校永远不应访问另一所学校的数据。

  • 管理员角色将对他下的每个组和用户拥有完全的超级用户权限。
  • 组所有者只能访问组本身及其下的用户。
  • 一个数据仓库可以有多个管理员,每个组可以有多个组所有者等。
  • 管理员/组所有者/用户通常不会改变他们可以做什么,因为他们的能力几乎是固定的。将改变的是他们可以对哪些数据采取行动

我绝对肯定那里必须有一些通用模式,我可以开始并围绕它开发一个自定义授权系统,该系统可以根据我的系统需求进行微调。有 ACL,有类似于 Rails 的 CanCan 的库,我相信还有更多。

我很想知道我的选择是什么以及一些权衡是什么。资源、阅读材料、文章、书籍都会很棒。很可能我必须为这个 Web 应用程序实现一个类似于 Parse.com 的 API(即 API 客户端可以将自定义查询编写为 JSON 映射,并且这些查询将在后端转换为 SQL),并且防止这一点非常重要在各种不同的查询变体中进行未经授权的访问。

谢谢你。

PS 澄清一下,我实际上不在 Rails 上,我使用的堆栈没有现有的授权库,因此我需要自己动手。

4

1 回答 1

0

我会查看 hartl 教程以实现用户和管理员以及用户级别

http://ruby.railstutorial.org/chapters/modeling-users

于 2014-01-29T08:05:00.043 回答