基于角色的Web应用程序授权系统?

时间:2014-01-29 07:01:58

标签: web-services authorization acl roles role-base-authorization

我目前正致力于设计支持多种类型用户角色的REST风格的SQL支持的Web应用程序。我正在寻找实现授权抽象的想法,它既简单又强大。

系统中的分层角色将遵循:

superuser/admin -> group owner -> group user

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

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

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

我绝对肯定必须有一些一般的模式,我可以从它开始并围绕它开发一个自定义授权系统,它根据我的系统需求进行了微调。在那里有ACL,还有像Rails这样的库。 CanCan和我确信还有更多。

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

谢谢。

P.S。只是为了澄清,我实际上并没有使用Rails,我使用的堆栈没有现有的授权库,因此我需要自己动手。

1 个答案:

答案 0 :(得分:0)

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

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