【问题标题】:A more simple approach to role-based access control (RBAC)?更简单的基于角色的访问控制 (RBAC) 方法?
【发布时间】:2012-09-14 09:40:08
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php rbac


    【解决方案1】:

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

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

    另一种解决方案是使用 ACL,我认为它更容易实现,但可能更难管理。可以了解ACL和RBAC的区别here

    【讨论】:

      猜你喜欢
      • 2011-03-18
      • 2014-12-26
      • 2015-02-16
      • 2017-02-06
      • 2014-01-25
      • 2016-10-08
      • 2010-09-11
      • 1970-01-01
      • 2013-08-28
      相关资源
      最近更新 更多