企业信息化软件的权限设计,RBAC的“通用型解决方案”
优采云 发布时间: 2021-08-08 00:01企业信息化软件的权限设计,RBAC的“通用型解决方案”
企业信息化软件的权限设计一直是一个非常棘手的任务,因为在企业信息化软件中,业务需求总是千变万化的,很难有一个统一的标准解决方案来满足复杂的权限需求。还能保证出色的系统性能和用户体验。
在设计权限系统时,通常有两种方法。一个是庞大而全面的“全方位解决方案”,可以为每个具体的内容分配权限,甚至可以对每个领域进行权限划分;另外,One是“通用解决方案”,即为基于角色的访问控制(RBAC)设计的解决方案。
第一个大而全面的“全方位解决方案”是使用抽象的概念来描述权限,这使得用户难以理解和操作复杂繁琐,必然导致系统性能下降。更重要的是,一般情况下,权限不需要精确到字段级别。因此,现在大多数系统采用基于角色的访问控制(RBAC)的第二种“通用解决方案”。
一、RBAC 基本原理
RBAC也叫基于角色的访问控制,英文全称是Role-Based Access Control。核心思想是将用户与角色和权限相关联。一个用户可以有多个角色,每个角色可以有多个权限。 “用户-角色-权限”的授权模型是通过角色构建的。在这个模型中,用户和角色之间、角色和权限之间是多对多的关系。对应关系如下:
RBAC 是基于不断实践的更成熟的访问控制方案。具有以下优点:
同时,RBAC也有自己的一些不足:
二、RBAC 在 SiteServer cms 中的实现
1、资源权限
SiteServer cms是知名的cms内容管理系统,主要用于网站建设和业务系统定制开发。其权限资源主要分为两类:
当然,作为企业级的cms内容管理系统,尤其是主力的站群管理系统,权限精准到站点是远远不够的。
所以针对每个站点之后,SiteServercms系统将权限资源进一步细分为:
从上图可以看出,SiteServercms系统的权限不仅可以精确到站点,还可以精确到某个站点下的特定一栏或多栏,也可以精确到添加、删除、修改、检查等动作。例如,您是否有权限在某个站点下添加内容或修改某个栏目的内容。
2、角色
为了对众多权限相似的用户进行分类管理,定义了角色的概念。以上所有资源权限都可以分配给角色。角色和资源是多对多的关系。下图为SiteServercms系统角色列表管理界面:
添加角色时,需要分配相应的资源权限。如下图所示:
3、User
这里的用户是指SiteServercms后台管理员,是后台站点管理的具体操作者。 SiteServercms管理员不能直接拥有权限,必须给他们分配一个角色,然后通过角色关联权限。
为特定管理员关联角色时,只需点击对应管理员后面的“权限设置”即可进入关联角色界面,如下图:
如果管理员拥有站点管理的所有权限,在关联角色时可以直接设置为站点的站点管理员,如下图:
如果用户有特殊权限,你可以为他创建一个特殊角色来应用解决方案,因为如果用户也可以分配权限,系统会复杂得多。