模型|B端后台“权限设计”的99种解法与反思( 二 )
文章插图
DAC不仅能够分配权限,还能够对权限进行累加,继承,但是其最大的缺点在于,权限过于分散,不方便管理,例如,无法简单地将一组文件设置一个统一的权限开发给制定的一群用户。
2. 强制访问控制(MAC:Mandatory Access Control)
MAC模型往往用于信息敏感行业,该模型将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。
通俗地来说,在强制访问控制下,用户(或其他主体)与文件(或其他客体)都被标记了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定一个用户是否有权访问该文件。例如多级安全(MultiLevel Secure, MLS)就是一种强制访问控制策略。
文章插图
3. 访问控制列表(ACL:Access Control List)ACL(Access Control List)主要包含三个关键要素用户(User)、资源(Resource)和操作(Operate)。
ACL将每一项资源都分配一个列表,当用户需要访问资源时,都会先去请求列表是否有当前用户的访问权限,从而确定当前用户可否执行相应操作。
其优点是,ACL及其简单,不需要任何基础设备就可完成访问控制,但是由于其表单数量过多,导致若系统内部有大量资源,管理访问控制列表就成为了繁琐的工作。
文章插图
4. 基于角色的访问控制制(RBAC:Role-Based Access Control)
RBAC模型是在实际业务中使用最多的模型,RBAC模型主要由3个基础模块组成,分别为用户、角色、权限。系统通过编辑用户与角色、角色与权限的映射关系,解耦用户与权限的关系,大幅度降低数据冗余,进而降低了系统的复杂度,提高了系统的灵活性。
RBAC模型它只是一个大类,它可以细致地划分为:RBAC0、RBAC1、RBAC2、RBAC3。
1)基本模型:RBAC0
RBAC0是RBAC的核心,它定义了能构成RBAC控制系统的最小元素的集合(角色)。在此模型中,它指明了角色、用户、访问权限和会话之间的关系。其流程为,通过用户关联角色,定义权限集(角色)的方法间接的赋予用户权限,进而达到用户和权限解耦的目的。
文章插图
在RABC中,用户与角色的关系可以分为为“N:1(多对一)的用户角色关系”和”N:N(多对多)的用户角色关系“。
举个N:1的用户角色关系的例子,李三、李四(用户)都是A部门(用户组)的人,岗位都为产品运营(角色),他们都需要文章审核、文章发布功能(权限)。因此,只需要对产品运营(角色)进行分配文章审核、文章发布(权限),将产品运营(角色)分配给李三、李四即可。
文章插图
N:N(多对多)的用户角色关系中,若一个用户被分配了多个角色,那么该用户的权限为所分配角色的并集。
再举个例子,李五为B部门的产品经理,权限为文章模板设置。但是因为某次调研,他需要A部门的文章审核、发布权限。当分配给他A部门产品运营角色后,此时,他的权限变成了文章审核、发布权限、文章模板设置。
文章插图
但在实际业务中,对于用户的理解并非如上文中所写的那么浅薄。实际上,对于用户的定义多种多样,就笔者自身对用户的理解而言:“用户本质上为一个个需求的集合体“。
推荐阅读
- B端|赋能B端业务新变化
- mZoom已经修复了macOS客户端中一个被广泛报道的漏洞
- 页面|作为产品经理,如何优化后台系统
- 启示录|B端吃透系列:集体人格之设计启示录
- 模型|从零建立赋能业务的数据中心「逻辑框架」
- 模式|生鲜电商的C端隐忧、B端瘦身
- G黄冲:从PC端到移动端,当下服装产业如何依托互联网破局?| 门店
- web|Axure实战规范分享:后台web网站
- 高端|良品铺子到底是打着高端零食的幌子加价,还是真的物有所值?
- 高端大气上档次|刘强东到底有多少钱?豪宅曝光后大开眼界,网友:充满金钱的味道!