如何在Ruby on Rails中实现灵活的基于角色的多用户角色访问控制?

问题描述 投票:0回答:1

“我正在使用 Ruby on Rails 构建一个复杂的 SaaS 应用程序,并尝试确定实现基于角色的访问控制 (RBAC) 的最佳方法,以保护不同用户角色的应用程序的不同部分。

一些具体要求:

有 5 个主要用户角色 - 管理员、经理、员工、客户、访客 管理员可以访问所有区域,经理可以访问某些管理区域 员工可以查看自己的内容,但不能查看其他员工的内容 客户只能访问自己的客户账户区域 访客对某些公共内容具有只读访问权限 我研究过 Pundit 和声明性授权等解决方案,但我不确定它们对于我需要实现的复杂权限是否足够强大。在具有多个用户角色和权限的 Rails 中实现灵活、可维护的 RBAC 的推荐方法是什么?”

“我之前已经使用 Pundit 等解决方案在 Rails 中实现了基本的基于角色的访问控制,但这个案例比我过去所做的更复杂。

到目前为止我已经尝试过:

对主要用户角色使用 Pundit 策略。这适用于简单的情况,但对于跨不同控制器/操作的复杂权限来说会变得非常麻烦。 在控制器中使用 if/elsif/else 滚动我自己的权限。这可行,但对于不断增长的应用程序和许多角色来说是不可维护的。 看看声明式授权,但 DSL 似乎限制了我的复杂需求。 理想情况下,我正在寻找一个 RBAC 解决方案:

随着应用程序规模和复杂性的增长,易于维护 可以干净地处理不同模型/控制器之间的权限逻辑 允许我添加新的角色和权限,而无需进行大规模重构 使用非详细 DSL 或干净的 Ruby 语法来定义权限 到目前为止我尝试过的选项似乎无法提供我长期需要的灵活性。我缺少什么?哪些方法适用于实际 Rails 应用程序中的复杂多角色 RBAC?”

ruby-on-rails security authorization roles rbac
1个回答
0
投票

acl9涵盖您的所有用例。

© www.soinside.com 2019 - 2024. All rights reserved.