六安沧州西安三亚宝鸡菏泽
投稿投诉
菏泽德阳
山西湖州
宝鸡上海
茂名内江
三亚信阳
长春北海
西安安徽
黄石烟台
沧州湛江
肇庆鹤壁
六安韶关
成都钦州

总结后台权限设计案例分析

  saas平台由于其本身按需购买的特性,在设计规划权限时,需要考虑统一配置权限如何规避企业没有购买的应用,以及如有部分应用存在数据权限不同的问题。现在,本文简单总结一下当前saas模式下权限的几种设计方式。
  作为一个B端平台型产品,系统的权限设计是其中一个非常重要的组成部分,没有权限管理的系统仿佛一个没有门的房子,任何人都可以随意查看甚至调整,对系统的安全性存在非常大的隐患,而saas模式下由于应用基本独立,随时可能被企业拆分使用。
  这里权限的统一与拆分问题也十分重要,本文简单总结一下当前saas模式下权限的几种设计方式。
  一、权限管理的重要性
  权限管理一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,权限管理基本是任何一个系统的标配模块。它的作用不仅在于保护系统数据安全性、防止留下系统漏洞,更能在庞大的系统下进行模块和数据配置,让不同的角色进入系统看到不同的模块和数据,最大程度地提高系统的易用性。
  大部分系统中权限管理是作为一个独立的管理入口,统一设置所有的业务的权限。而saas平台由于其本身按需购买的特性,在设计规划权限时,需要考虑统一配置权限如何规避企业没有购买的应用,以及如有部分应用存在数据权限不同的问题。
  二、抽象权限组成
  权限到底是名词属性还是动词属性,还是名词、动词属性均包含,这对于权限的含义很重要。如果是名词属性的话,那么它应该是有具体的指代物;如果是动词,则应该具有行为表示。
  权限的名词属性:api接口、页面、功能点。
  权限的动词属性:可操作、不可操作。
  那么我们现在来看,其实权限是名词、动词属性,它一定是表达了两层含义。即控制的对象、操作。
  向上引申可将权限划分为3个组成部分:
  页面权限:用户可以看到那些页面;
  操作权限:用户可以在页面内进行那些操作,增删改查等;
  数据权限:用户可以看到那些数据或内容;
  三、常见的权限控制模型
  (1)自主访问控制(DAC:DiscretionaryAccessControl)
  系统会识别用户,然后根据被操作对象(object)的权限控制列表(ACL:AccessControlList)或者权限控制矩阵(ACL:AccessControlMatrix)的信息来决定用户的是否能对其进行哪些操作,例如读取或修改。而拥有对象权限的用户,又可以将该对象的权限分配给其他用户,所以称之为自主(Discretionary)控制。
  DAC最大缺陷就是所有用户的权限不能统一管理,用户和用户的权限比较分散,后期调整只能单个进行调整,不易维护。
  (2)强制访问控制(MAC:MandatoryAccessControl)
  在MAC的设计中,每一个对象都都有一些权限标识,每个用户同样也会有一些权限标识,而用户能否对该对象进行操作取决于双方的权限标识的关系,这个限制判断通常是由系统硬性限制且无法回避的。强制访问控制多应用于对安全性要求比较高的系统,如多级安全军事系统;
  (3)基于角色的访问控制(RBAC:RoleBasedAccessControl)
  RBAC是我们当前使用范围最广的一种权限设计模型,模型基础就是用户和角色,角色和权限做多对多的对应。标准的RBAC模型包括四个部件模型,分别为基本模型RABC0、角色分级模型RABC1、角色限制模型RABC2、统一模型RABC3。
  RBAC0(基本模型)定义了完全支持RBAC概念的任何系统的最低需求。RBAC0的模型中包括用户(U)、角色(R)和许可权(P)等3类实体集合,RABC0是权限管理的核心部分,其他的版本都是建立在0的基础上。
  RBAC1(角色分级模型)基于RBAC0模型,引入角色间的继承关系,即角色上有了上下级的区别,角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构,实现角色间的单继承。这种模型合适于角色之间的层次明确,包含明确。
  RBAC2(角色限制模型)引入了角色间的约束关系,主要约束规则包括:角色间的互斥关系,在处理用户和这些角色之间的关系时,包括静态分离和动态分离,静态分离指互斥的角色不能同时赋予同一个用户;动态分离指用户不能同时操作两个互斥的角色进行登录。
  RBAC3(统一模型)同时包含了1和2的特性。
  如图所示,每个用户关联一个或多个角色,每个角色关联一个或多个权限,从而可以实现了非常灵活的权限管理。角色可以根据实际业务需求灵活创建,这样就省去了每新增一个用户就要关联一遍所有权限的麻烦。
  简单来说RBAC就是:用户关联角色,角色关联权限。并且在产品和数据设计层面,有更好的扩展性,可控制到任意的粒度。
  (4)基于属性的权限验证(ABAC:AttributeBasedAccessControl)
  ABAC则是通过动态计算一个或一组属性,来是否满足某种条件来进行授权判断(可以编写简单的逻辑)。属性通常来说分为四类:用户属性(如用户年龄),环境属性(如当前时间),操作属性(如读取)和对象属性(如一篇文章,又称资源属性),所以理论上能够实现非常灵活的权限控制,几乎能满足所有类型的需求。该设计过于复杂,暂未参透。
  四、基于RBAC权限模型的SAAS平台权限系统设计
  对于SAAS平台这样庞大复杂的平台来说,权限系统设计得越全面、精细、后期的系统扩展性就越高,所以这里采用RBAC权限模型,RBAC权限模型是现有比在这方面比较成熟的权限设计模型,应用这个模型能解决常规的系统权限配置问题,其基本原理也能适用于平台权限设计。
  RBAC对权限抽象概括:判断【Who是否可以对What进行How的访问操作(Operator)】
  RBAC支持三个著名的安全原则:最小权限原则,责任分离原则和数据抽象原则。
  最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集。
  责任分离原则可以通过调用相互独立互斥的角色来共同完成敏感的任务而体现,比如要求一个计帐员和财务管理员共参与同一过帐。
  数据抽象可以通过权限的抽象来体现,如财务操作用借款、存款等抽象权限,而不用操作系统提供的典型的读、写、执行权限。然而这些原则必须通过RBAC各部件的详细配置才能得以体现。
  来自百度百科
  以某物业公司内部信息平台为例,该物业公司平台分为客户档案、房产档案、收费系统、客服工单等多应用结构,其中物业公司组织架构为多层级,基本样式如下如。
  组织架构
  应用入口
  功能页面
  以上我们可以将:
  组织架构数据权限
  应用入口以及应用菜单页面权限
  功能操作点操作权限
  1。基本模型:RBAC0
  抽取角色,建立角色与用户的关系。
  这里的角色主要是指在组织内承担特定的业务活动,并和别的业务角色进行交互的业务角色。业务角色的抽取主要有两种方式:一种是直接和岗位对应,另外一种是根据流程的本质和需要定义角色。
  确定各角色的用例图,如下图(简单示例):
  根据业务复杂度、用户特点进行原型草图设计,在进行权限分配时,可以从增加角色维度以及增加用户维度。如下图:
  新建角色维度
  新建用户维度
  使用此模型时,我们需要注意的问题有:
  用户和角色为多对一的关系,如果需要用到多对多的关系,将涉及到角色关系的处理,此模型并不适用。
  权限一定是动态可配置的,不是静态的,这点一定要在着手开发前进行说明,一般情况,权限的数据结构为树形,合理的数据结构,便于前端根据实际需求进行解析;
  人员在选择角色获取到对应的权限数据后,最好可以提供一个二次编辑界面,权限会更加灵活。
  2。角色分级模型:RBAC1
  RBAC1基于RBAC0模型,引入角色间的继承关系,即角色上有了上下级的区别,角色分级模型适用于平台业务功能较多,单个角色设置操作过于繁琐,引用角色分级,可让角色之间存在继承或被继承的关系,比如客服主管可直拥有下级所有员工拥有的权限。
  建立角色管理,确定角色跟用户之间的关系。(要求角色间有明显的层级关系,所以在没有其他需求的情况下,这里根据业务部门和岗位进行角色的抽取)
  建立角色层级关系和继承关系。
  角色层级关系
  一般继承关系
  受限继承关系
  给角色赋予权限(应用入口权限应用页面权限、应用页面中操作功能权限、数据查看权限。)权限赋予同RBAC0。
  增加一个角色管理。如下图:
  通过角色管理即可以将下级角色的权限直接赋值给上级权限,但由于低级角色的权限全部被高级角色继承,就会导致没有自己角色的私有权限;也可以为人员提供一个二次编辑权限界面,但是一旦编辑后,若后续所属角色权限发生变化,会直接覆盖原有编辑后的权限。
  3。角色限制模型:RBAC2
  RBAC2,它是RBAC的约束模型,RBAC2也是建立的RBAC0的基础之上的,在RBAC0基础上假如了约束的概念,主要引入了静态职责分离SSD(StaticSeparationofDuty)和动态职责分离DSD(DynamicSeparationofDuty)。
  SSD是用户和角色的指派阶段加入的,主要是对用户和角色有如下约束:
  互斥角色:同一个用户在两个互斥角色中只能选择一个;
  基数约束:一个用户拥有的角色是有限的,一个角色拥有的许可也是有限的;
  先决条件约束:用户想要获得高级角色,首先必须拥有低级角色。
  DSD是会话和角色之间的约束,可以动态的约束用户拥有的角色,如一个用户可以拥有两个角色,但是运行时只能激活一个角色。
  角色权限配置界面可参照RBAC0。
  用户在配置角色或角色下新建添加用户时,需要根据用户已有的角色身份进行判断。示例:用户A配置角色为客服组长,则可继续添加角色为客服主管,若客服主管已被分配给他人,则也不能分配给用户A(遵从最大拥有数原则)。若同时将保安主管分派至用户A,则操作时,需要选择操作角色。
  当一个用户配置了多个角色身份时,权限取并集。
  4。统一模型:RBAC3
  统一模型是包括了继承和分离两种情况的更为复杂的模型,即既要定义角色间的的继承关系,也要维护好角色间的责任分离关系。
  在这里就不做过多的赘述(两张图供大家参考),因为只要维护好了角色间的约束关系,其他规则类的处理方式同RABC1和RABC2。
  角色管理
  权限配置
  五、总结
  1。角色数据权限
  不同的角色身份查看的角色数据时不相同的,比如物业分公司中深圳区域分公司的管理人员可能就无法管理长沙区域分公司,在给角色分配数据权限时就可以将长沙区域分公司去除。
  除数据权限外,我们还会遇到字段权限,比如:分公司C和分公司D都能看到上海区域分公司的客户情况,但是C看不到客户联系方式,D则能看到联系方式。如果有需要对字段权限进行控制,则可以在设置角色的数据权限或者功能权限时,进行控制。
  题前有提到针对saas模式,可能存在一个角色在管理A跟B应用时可操作的数据权限时不一样的,可以在数据权限中增加一个高级设置权限,为不同的角色针对不用的应用进行分配数据操作。
  2。用户操作体验
  平台类或者TOB内部产品,虽然不像C端为了留住用户追求极致用户体验,但是也需要确保在交互以及文字理解上面不会让用户产生疑惑情绪,培训成本也是开发成本的一环,尤其针对权限一块可能涉及业务功能复杂,如果在文字描述以及操作上在加大操作难度,可能无法估量的后果。
  3。默认账号以及默认权限的设置
  对于ToB类或者平台类的产品,正常来讲都会有一个默认的超级管理员的角色以及角色对应的账号,否则系统内第一个角色谁来添加?
  默认权限的设置则根据需要进行设置,如果是不必要进行控制的权限,当然是可以设置为默认权限的。
  综上所述,根据以上的设计模式以及解决方案,已经能实现大部分企业90的问题了,实际上很多企业并不需要做到这么小粒度的权限控制。

精彩可笑的学渣雷语段子1、上课同桌睡觉,老师走到他面前,弯下腰,闻了闻,轻声说他睡得真香啊2、数学课还是要听的,万一哪天听懂了呢。3、世上只有一句话骗我一千万遍我也会相信那就是:老师来了……巨冷的笑话带给你丝丝凉意1、洞外巡逻的小妖发现了唐僧师徒,急忙跑回洞中报告:大王!金角大王看了看小妖,冷冷地说:要不起。2、小沙弥问正在打坐的老僧:师父,何处有慈悲?老僧抬起右手,指……环尾狐猴为什么会灭绝年来数量下降因伐木而濒危相信看过《马达加斯加》动画电影的人,应该都记得那个喜欢跳舞的狐猴首领朱利安,它的原型其实就是环尾狐猴,目前环尾狐猴只出现在非洲马达加斯加岛上,并没有灭绝,但是它的数量已经较20……金针菇的营养价值金针菇不能和什么一起吃未熟禁食金针菇大家肯定吃过,它常被下到麻辣烫、火锅中,也被炒着吃,味道可以说非常不错。平时吃金针菇,大家只会注意味道,其实金针菇的营养价值也很强大,接下来就随小编一起去了解看看。……如何培养潜在客户每一个人都喜欢晚宴,但是当我听到人们对于培养潜在客户计划感到索然无味的时候很惊讶。因为你仔细想想,晚宴和培养潜在客户计划其实很相似。他们都要求举办方(营销人员)不仅要通过交谈,……知乎万赞回答真正厉害的人是怎么分析问题的01:hr公司业绩下滑我先来举一个例子。假设,你是一家创业公司的CEO。最近,你发现公司的业绩,一路下滑,你打算找业务部主管王小锤聊一下,看看到底发生了什么,……鳝背面的做法这碗鳝背面的出品,是面是面,浇头是浇头,浇头不放在面上,这就叫过桥;传统的吃法是过桥配黄酒,一杯黄酒喝完,浇头还剩一半,再吃那个面。工具材料主料:野生大黄鳝鱼1条、……如何做牛皮糖aclasstaghrefwiki10422ddajkuwB3EU。html牛皮糖a是一种多人都喜欢吃的小零食。那么如何做牛皮糖才好吃呢?关于这个问题,小编就和大家分享一下我的……幼儿园全国交通安全日活动总结多篇【前言】2020幼儿园全国交通安全日活动总结多篇为好范文网的会员投稿推荐,但愿对你的学习工作带来帮助。12月2日是全国交通安全日,交通安全意识应该从娃娃抓起,增强幼儿的交……宿舍管理工作计划精选多篇第一篇:宿舍管理工作计划住宿生管理工作是一项繁锁,细致的工作,它事关每个学生的学习、生活、安全、心理等各个方面,需要有高度的责任感和不厌其繁的耐心。为创造一个安全、……公职人员述职报告推荐合集公职人员述职报告推荐合集由好范文网会员awerq234投稿推荐,但愿对你的学习工作能带来参考借鉴作用。又到了年末书写总结报告的时候,那么公职人员应该怎么书写自己的述职报告……对高中体育教学创新的探讨摘要:随着新课改的逐步深入,素质教育成为教学的发展趋勢,本文将简单探讨如何进行高中体育教学改革创新,以帮助高中体育教学向着更好的方向发展。关键词:高中体育;教学改革;创新……
更年期口臭该怎么办更年期口臭该怎么办?是不是特别想知道呢?那下面就让我们一起来看看吧。口臭,严重影响了人们的日常交往。女性到了更年期,常出现月经不调、内分泌紊乱、情绪急躁等更年期综合症。这……飞机杯怎么用呢可不是直接塞进去来回来去的捅哟学会正确使用飞机杯也是性爱知识中不可缺少的一部分,作为一个专业DIY二十多年的单身青年,飞机杯怎么用这个问题自然难不倒我,现在就把自身的实践经验分享给大家。飞机杯怎么用呢?可不……夏天如何过性生活酷暑来临,不光身体热,人们的心绪、情绪、情欲也躁动起来。所以,年轻人都把夏天当成的季节,每天晚上开着窗户伴随真真夏风,享受美妙的性爱,下面就跟着小编一起来了解下夏天如何过性生活……朱元璋当了皇帝之后为何没有处理掉他当过乞丐的往事一说到朱元璋大家想到了什么?很多人都想到了这个草根逆袭吧,从乞丐做到了皇帝,非常的让人惊叹,但是其实历史上很多帝王会选择性的把自己一些不好的事情给抹掉,让这些不好的事情在历史书……小学成语花样记部编版人民教育出版社小一书在手,小学一到六年所有成语全拥有。《小学成语花样记》(部编版人民教育出版社小学语文教材一到六年级2020年新教材共有成语666条,编成四字谣、三字经诗句共1332句,……吃辣不伤身的四个妙招一,烹调要注意。首先,最好选鲜辣椒做的菜。因为鲜辣椒的营养更丰富,火力也小一些,而干辣椒、辣椒面等就要少吃了。鲜辣椒经过高温烹炒,辣味会有所减轻。如果菜中已经放了辣椒,就……图自动挡汽车怎么开自动挡汽车档位介绍如何正确驾驶自动挡汽车呢?自动挡汽车怎么开呢?首先,自动挡开车技巧的起动起步。在起动自动挡发动机时,必须将选挡操纵手柄置于P挡位或N挡位,并拉紧手制动或踩下制动踏板,汽车……从内容触达和活动吸引两个维度谈谈企业如何通过自媒作者从内容触达和活动吸引两个维度,和大家分享的企业通过自媒体运营获客的相关思路和方法论。一起来看看。中国互联网发展了近30年,从10年一个大变化到5年一个转折再到现在的一……设计趋势形象篇在本文中,我们将分享设计趋势报告的第二部分,关于对IP行业的见解。本次研究将首先分享IP市场的总体流程,并介绍一些最近值得注意的IP品牌合作案例。在本文中,我们将分享设计……家居常见木地板选购误区常识木地板的选择也是家庭装修不可忽视的,木地板的选购十分的重要,选好了能体现个人的修养和品位。木地板选购分为几种,关于木地板选购其实也有很多种类型的区分你都知道吗?到底怎样的木地板……卧室信号差手把手教你设置无线路由桥很多朋友的路由器都安装在客厅里,这样一来,在卧室里上网的时候WIFI信号就比较差了,非常的影响网速。那么怎么解决这个问题呢,其实很简单,加一个路由器,搭建一个无线桥接网络,信号……蜂王死了蜂群怎么补救急造王台:自然产生新蜂王蜂群意外失王后首先要观察蜂群中是否有受精卵或适龄小幼虫,如果有的话就完全不用担心,因为工蜂会将这些受精卵或小幼虫改造成王台培育新蜂王,如果失王群没……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网