在我们生活中,每个组织都会有一个组织架构,例如一个公司,它会有财务部、技术部、行政部、后勤部等。而这些部门,之所以这样划分,就是因为他们的职责不同,所负责的业务不同,本质就是他们行使的职能不同。如果模糊部门的概念,引入一个新概念——角色,赋予同一部门的人同一的角色,他们在这个角色下,会行使相同的职能,这样同一部门的人就拥有了相同的权限,以后这个部门在人事上的变动,其实就是在给这个角色增减用户。于是,就引入RBAC模型。
RBAC的核心分为:用户、角色、权限这三个模块,在产品中的实际流程如下图所示:
下面我们将结合以下问题来一起深入了解下RBAC模型
问题1: 权限可以随意添加吗?
如上图所示,在创建角色时,我们会给这个角色分配相应的权限,这里的权限是有前提的,就是它是基于已开发的功能来进行的,如果一个功能还没有开发,那无法对它进行权限控制的。如下图所示为常见的添加角色操作:
问题2: 不同角色间的权限可以重叠吗?
可以,我们在创建角色时,可能会遇到不同的角色但有部分权限是相同的,这种情况是允许的
问题3: 哪个角色是必须要有的?
超级管理员,它是最大的权限,这个是必不可少的角色