1

我很难掌握基于角色的访问控制 (RBAC) 背后的代码。我正在尝试在 Laravel 框架中使用“捆绑包”,但它似乎只会让事情变得更加复杂。

我的特定应用程序需要三个角色。第一个也是最基本的角色只是让用户能够登录我的应用程序,管理他们的帐户,并保存“收藏夹”和“交易”。我需要的第二个角色是允许店主能够登录并创建帐户和交易。第三个角色基本上是管理员角色,因此我可以在需要时进入并删除不需要的内容。

只是简单地将一个 int 字段添加到名为“角色”之类的用户表中会不会有任何预期的问题?如果用户的角色为 0,则他们具有基本权限,无法访问站点的管理员和所有者区域;1 表示用户具有所有者角色等。每次发出请求时,我都会简单地检查用户的角色。

这会是一个合理、安全的解决方案,还是我可能会在使用这种方法时遇到问题?

4

1 回答 1

2

在管理对应用程序功能的访问时,使用 RBAC 将为您提供更大的灵活性。可以为每个用户分配多个角色、任务和操作;每个角色可以包含多个任务,每个任务可以包含多个操作。

如果您的应用程序只需要 3 个角色,基本、所有者和管理员,我认为只需在您的用户表中添加一个指示符就可以了。但是,如果您需要授予某些用户对某些操作的访问权限,则您需要为每个要区分访问控制的操作设置一个新编号。因此,使用这种方法将难以根据功能分离权限。

另一种解决方案是使用 ACL,我相信它更容易实现,但可能更难管理。您可以在此处了解 ACL 和 RBAC 之间的区别。

于 2012-09-22T07:48:48.677 回答