我已将ACL 权限系统整合到我的应用程序中,我现在想知道如何最好地使用它,特别是在用户组方面。在最简单的形式中,会有几个“角色”组(“管理员”,“编辑者”,“用户”等),所有用户都属于这些组中的一个。
我的问题是:根据您的经验,构建ARO树以获得最多权限位于顶部并在您下载时删除它们(1)或在顶部拥有最少权限并添加它们更好*当你走下去(2)。
(1):
- Admins allow all
- Editors deny create, delete
- Users deny update
(2):
- Users allow read
- Editors allow update
- Admins allow create, delete
各自的优点和缺点是什么?
答案 0 :(得分:1)
我认为你所问的是“用户应该是没有各种能力的管理员,还是管理员应该是具有额外能力的用户”。我认为,从建模的角度来看,让管理员成为用户更好。
此外,考虑可能出现的问题也很重要。如果在系统的实施中存在一些错误配置,那么冒险拒绝某人访问他们应该能够做的事情的风险会更好,而不是冒险让某人访问他们本不应该访问的东西。 / p>
因此,我认为你的第二个例子更好。在授予权限方面构建系统更安全,而不是拒绝它们。