我很难掌握基于角色的访问控制(RBAC)背后的代码。我正在尝试使用Laravel框架的“捆绑”,但它似乎只会让事情更复杂。
我的具体应用需要三个角色。第一个也是最基本的角色是让用户能够登录我的应用程序,管理他们的帐户,并保存“收藏夹”和“交易”。我需要的第二个角色是允许商店所有者能够登录并创建帐户和交易。第三个角色基本上是一个管理员角色,因此如果需要,我可以进入并删除不需要的内容。
只是简单地将一个int字段添加到名为“role”的用户表中会有任何预期的问题吗?如果用户的角色为0,则他们具有基本权限,无法访问该站点的管理员和所有者区域; a 1表示用户具有所有者角色等。我只是在每次发出请求时检查用户的角色。
这是一个合理,安全的解决方案,还是我可能会遇到使用这种方法的问题?
答案 0 :(得分:2)
在管理对应用程序功能的访问时,使用RBAC可以提供更大的灵活性。可以为每个用户分配多个角色,任务和操作;每个角色可以包含多个任务,每个任务可以包含多个操作。
如果您的应用程序只需要3个角色,基本,所有者和管理员,我认为只需在您的用户表中添加一个指标即可。但是,如果您需要授予某些用户访问某些操作的权限,则需要为要区分访问控制的每个操作添加一个新编号。因此,使用该方法将难以基于功能分离权限。
另一种解决方案是使用ACL,我认为它更容易实现,但可能更难管理。您可以了解ACL和RBAC here之间的区别。