我正在寻找一种按需生成新 RBAC 角色的方法。我正在开发一个具有两个主要参数的 RBAC 系统。而不是简单地让一个用户与一个角色相关联,而该角色与一组权限相关联;用户可以与“特定项目”的角色相关联,然后用户可以仅对该项目(或用户为其拥有该角色的其他项目)拥有该角色的权限。用户可以在一个项目中具有特定角色,而在另一个项目中具有不同角色;授予角色的权限对于每个项目都是一致的;用户对项目的权限取决于用户在项目中的角色。
针对具有两个参数的RBAC系统,lmontrieux建议为不同的项目使用不同的角色。例如,如果在项目“P1”和“P2”中使用角色“admin”,则创建一个角色“P1:admin”和另一个角色“P2:admin”。这似乎是要走的路,但我不想创建一组静态的角色。首先,会有几个项目,我不应该写几组除了项目ID之外在其他方面都相同的权限。其次,更重要的是,项目“P3”、“P4”和“P5”还不存在,当它们存在时,它们将由用户创建。由于我无法为数量不可预测的未来项目创建基于角色的静态权限,因此我需要开发一种基于通用标准生成项目特定角色的方法。
我认为这是一个很好的使用对象和类的应用程序,但我不确定如何构建它。