从SiteServer CMS管理员权限浅析权限系统的设计思路
企业信息化软件的权限设计一直是个非常棘手的工作,因为在企业信息化软件中,业务需求总是千变万化的,很难有一个统一的标准解决方案,既能够满足复杂的权限需求,又能够保证优秀的系统性能和用户体验。 在设计权限系统时,一般有两种做法,一种是大而全的“全能解决方案”,可以对每一条具体的内容进行权限分配,甚至可以对每一个字段进行权限划分;另外一种是“通用型解决方案”,即基于角色的访问控制(RBAC)设计的解决方案。 第一种大而全的“全能解决方案”问题在于使用了抽象化的概念描述权限,从而使用户很难理解和操作复杂烦琐,而且必然带来系统性能的下降,更重要的是一般情形下权限也用不着精确到字段级别。所以现在大部分系统都采用第二种基于角色的访问控制(RBAC)的“通用型解决方案”。 一、RBAC的基本原理 RBAC又叫基于角色的权限访问控制,英文全称是Role-Based Access Control。核心思想就是用户通过角色与权限进行关联。一个用户可以拥有多个角色,每一个角色又可以拥有多个权限。通过角色构造成“用户--角色--权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。其对应关系如下: RBAC是基于不断实践之后形成的一个比较成熟的访问控制方案。具有以下优势:
同时RBAC也有自身的一些缺陷:
二、RBAC在SiteServer CMS中的实现 1、资源权限 SiteServer CMS作为一个知名的CMS内容管理系统,主要是用于网站建设和业务系统定制开发。它的的权限资源主要分成两大类:
当然,作为一个企业级CMS内容管理系统,尤其是主打站群管理系统,权限仅仅精确到站点远远是不够的。 所以在具体到每个站点之后,SiteServer CMS系统又把权限资源细分为:
从上图可以看到,SiteServer CMS系统的权限不仅仅可以精确到站点,还可以精确到某个站点下的具体一个或多个栏目,而且还精确到增、删、改、查等动作。比如是否有某个站点下某个栏目的添加内容的权限、修改内容的权限等。 2、角色 为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,以上所有的资源权限都可以分配给角色,角色和资源是多对多的关系。下图是SiteServer CMS系统角色列表管理界面: 在添加角色时,需要把相应的资源权限给分配好。如下图所示: 3、用户 这里的用户指的是SiteServer CMS后台管理员,也就是后台站点管理的具体操作者。SiteServer CMS管理员是不能直接拥有权限的,必须要分配一个角色,通过角色再关联权限。 在为具体某个管理员关联角色,只需要在对应的管理员后面点击“权限设置”就可以进入关联角色界面,如下图所示: 如果某个管理员拥有管理某个站点的所有权限,那么在关联角色时可以直接设置成为某个站点的站点管理员,如下图所示: 如果某个用户权限比较特殊,可以为他专门建一个角色来应用解决,因为如果用户也可以分配权限系统就会复杂很多。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |