用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。

Posted 支付这点事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。相关的知识,希望对你有一定的参考价值。


关注一下又不会怀孕!













用户权限规划和设计模型

前言

当前在经手一个SHOP MALL的项目,其中涉及到集团内不同部门不同员工使用会员营销系统平台的不同功能,即给每个员工对应的平台权限和功能,所以需要规划一套组织权限和功能的产品方案。

用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。

其实我们在设计任何一款产品的时候,或多或少都会涉及到用户和权限的问题,比如做论坛,超级管理员、版主(普通管理员)和会员的功能和权限不一样;电商平台的消费者、管理者的权限和功能不一样,并且电商平台的市场部、运营部、客服部不同的部门的的权限和功能也需要明确的区分。

我搜索了当前行业内常用的权限模型,RBAC 模型是目前最为广泛接受的权限模型。

用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。

基本概念

角色访问控制(RBAC)引入了Role的概念,目的是为了隔离用户(user即动作主体,Subject)与权限(Privilege,表示对Resource的一个操作,即Operation+Resource)。 角色(Role)作为一个用户与权限的代理层,解耦了用户和权限的关系,所有的授权应该给予角色而不是直接给用户。

RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。

用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。

RBAC支持三个著名的安全原则:最小权限原则,责任分离原则和数据抽象原则:

(1)最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集。

(2)责任分离原则可以通过调用相互独立互斥的角色来共同完成敏感的任务而体现,比如要求一个计帐员和财务管理员共参与同一过帐。

(3)数据抽象可以通过权限的抽象来体现,如财务操作用借款、存款等抽象权限,而不用操作系统提供的典型的读、写、执行权限。然而这些原则必须通过RBAC各部件的详细配置才能得以体现。

用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。

在RBAC中,根据权限的复杂程度,又可分为RBAC0(基础权限模型)、RBAC1(角色分层模型)、RBAC2(角色限制模型)、RBAC3(统一模型)。其中,RBAC0是基础,RBAC1、RBAC2、RBAC3都是以RBAC0为基础的升级。

基础模型RBAC0

RBAC0是最基础的权限模型,该模型中,把权限赋值给角色,再把角色赋值给用户,

即先建立权限元素,再建立对应的角色,给对应角色设置权限,再建立用户,把用户分配到对应角色下。用户和角色是多对多的关系,角色和权限也是多对的的关系,用户拥有的权限是他所持有的所有角色的权限总和。

用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。

比如现在的shopMall项目,广场用户分集团、城市公司、广场管理员、市场、营销、运营、客服、IT等,对应的部门抽象出来对应的各个角色,把对应权限分配给这些角色,每个角色下建立该部门的用户,如此以来分配权限、调整权限只需要调整用户和角色关系或者角色和权限的关系即可,非常的灵活方便。

RBAC1、RBAC2、RBAC3

RBAC1、RBAC2、RBAC3

角色分层模型RBAC1,是建立在RBAC0基础之上在角色中引入等级的概念,给角色设置不同的等级,每个等级的权限不同,实现更细颗粒度的权限管理。

比如市场部分市场经理、市场专员、市场助手,市场专员比市场经理的权限少一些,市场助手比市场专员的权限更少一些,则可以根据RBAC1模型对市场经理设置三个等级:市场经理、市场专员、市场助手,每个等级赋予不同级别的权限,达到逐级审批和区分权限的需求。

角色限制模型RBAC2同样建立在RBAC0基础之上,对用户、角色和权限三者之间增加一些限制,这些限制可以分成两类,即静态职责分离和动态职责分离,比如角色互斥规则(同一个用户在两个互斥的角色中只能选择一个),基数限制规则(一个用户拥有的角色是有限的,一个角色拥有的权限也是有限的)

统一模型RBAC3是RBAC1和RBAC2的集合,所以RBAC3既有角色等级还有各种限制。

实际应用

在大型shop Mall中业务板块包括

用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。

每个模块中包括常规的增删改查,特别的板块会有更细分的颗粒度,比如积分商城还要包括积分的抵扣规则,支付通道的建设,购物车、交易订单、库存等等,在此不在一一列出,根据常规的shop Mall的组织结构,会有大致如下的角色划分,

针对集团管理的用户甲,则给予集团角色,分配的权限为每个广场的会员、营销、积分商城、商铺等模块的查看权限,数据统计的查看导出权限,以及整体会员等级的规则,积分累计的通用设置,积分抵扣的规则等等,

针对广场市场部的用户乙,则给予广场市场部角色,分配的权限为该广场的会员、营销、积分商城、商铺等模块的查看、编辑权限,数据统计的查看导出权限,不能夸广场查看,市场部不需要给予硬件维护、商铺租赁的维护权限,

总结

RBAC模型在很多产品和场景都会运用上,作为产品需要建立起该模型的思维概念和模式,规划产品时充分使用,且灵活运用。RBAC模型也有其自身的局限性,比如不能设置工作流,(一个业务流程包含多个环节的审批确认关系,按照业务流程,将各个节点串接起来),下次我们在来梳理下工作流模型。


   




以上是关于用户权限设计(RBAC)您熟悉吗?原理和思路全在本文。的主要内容,如果未能解决你的问题,请参考以下文章

PHP RBAC权限控制实现思路

转:RBAC如何设计一个权限系统

用户管理系统 - 用户权限设计(RBAC模型)

简单的RBAC用户角色权限控制

后台设计基石:用户权限管理(RBAC)及工作流(workflow)

RBAC之web管理权限思路你懂多少?