您好,欢迎访问《英法核潜艇》 网站地图

服务热线

淘宝天猫旗舰店店铺

产品简介

设计权限系统往往需要考虑很多问题,想用一个权限系统解决所有的权限问题基本是不现实的,在设计的过程中我们一定要遵循下列原则,以免走了歪路。

1. 最小权限原则

最小权限是指在完成特定操作时,需赋予用户的必不可少的最细粒度的权限。

最小权限原则指导我们在设计权限时,权限的粒度要做到最小,保证在权限分配时,只赋予用户足够完成其工作的权限。通过最小粒度的授权来限制用户的操作行为,降低当账号被盗等情况发生时,非法操作对系统的破坏,最大程度的保护系统安全。

2. 职责分离原则

职责分离原则是指在权限分配时,要考虑权限互斥的情况,即单个用户不能同时独立完成某些特定工作,而需要由不同的用户协同完成;譬如:分配文章的创建和审核权限时,如果同时赋予一个用户,那用户自发自审情况发生时,将让审核流程没有任何意义。所以在设计系统时,我们要将权限的互斥考虑进去,通过互斥原则,直接杜绝此类问题的出现。

3. 数据抽象原则

数据抽象原则是指在权限设计时,不要单纯的以对数据的增删改查操作来定义权限,我们需要结合业务场景来定义权限;譬如:将文章的增删改权限,改为:文章的创建权限、文章的编辑权限、已发布文章的编辑权限、文章发布的权限等。通过业务场景来定义权限,使权限的粒度更加合理,更加易于理解。
来源:百家号                         时间:17-10-11


网易UEDC – 蒋蕊遥 :文章结合自己的几次权限设计经历,提供一些所谓的经验套路,希望各位设计师从此微笑迎接权限需求。

一、令人头疼的权限设计

设计师在进行设计时,常常会抽象出对产品有诉求的多个角色,再依据角色的特性去梳理使用场景并设计。

当角色之间的使用场景不冲突,不需要隔离时,我们会综合考虑这些角色的使用场景来设计解决方案。比如:网易云音乐同时为需要听歌和听电台的用户,提供所有的功能。

当这些角色的使用场景完全不重叠、流程对立时,我们会设计完全独立的两套系统,如滴滴的司机端和乘客端。

但除了以上两种情况,在大多数 B 端产品中,基于流程公正性、信息安全性等因素考虑,各个角色的使用场景是部分通用,部分隔离的,这时候就需要引入「权限系统」了。

设计师有时会对角色权限系统有一丝畏难情绪。

  • 一方面因为角色权限系统的配置作为一个非常后台的管理功能,在竞品调研过程中很难通过上帝视角去解剖其中逻辑,自己琢磨又较难透彻;
  • 另一方面对于角色权限系统,做好了并不能代表设计能力有多优秀,但一旦没做好就会导致整个流程不通、产品崩溃。所以设计师常对权限系统望而却步。

以下就笔者的几次权限设计经历,提供一些所谓的经验套路。

二、基于技术模型进行设计-RBAC模型

进行设计前,最好能够理解技术模型。在业界接受度较高的功能权限模型是 RBAC(Role-Based Access Control)模型,其基本理念是将「角色」这个概念赋予用户,在系统中用户与权限之间通过角色进行关联,以这样的方法来实现灵活配置。以下就模型与设计相关的几点做一下简单介绍。

1. 基本的RBAC模型

如果没有角色的概念,系统中每加入一个用户,就需要为这个用户配置一遍权限,下图是 wiki 中直接为用户权限管理方式,可以看出管理成本巨大。

而引入「角色」概念后,如下图即是 RBAC 模型中最基本的模型:用户与角色可为多对一或多对多的关系,当一个用户的角色为多对多时,当前用户的权限是多个角色的并集。

此时只需要为角色赋予权限,能够大大减轻管理负担,同时将用户与权限解耦,提供更大的灵活性。

2. 引入用户组概念的RBAC模型

在大型平台的应用上,试想如果用户量上万,新增一个角色时,可能需要为大量用户都分配一遍新的角色,工程量仍然巨大,此时即可以引入用户组的概念。如果部分用户的使用场景是相对一致和基础的,我们可以把这些用户打包成一个组,基于这个组的对象进行角色和权限的赋予。

同理如果权限较多时也会存在一样的问题,处理方式是引入权限组的概念,将使用场景相对固定的一组功能或权限打包成组赋予角色。但是一般来讲一个系统中权限功能的体量是相对有限和可控的,所以实际应用中对权限组的使用较少。

下图所示为 mac 系统中运行添加用户组,并以用户组为单位配置权限。

需要注意的是即使有用户组或权限组的存在,也可以允许用户或权限与角色直接关联,这个可以视具体业务情况而定。

3. 角色继承的RBAC模型

在一个业务场景中,如果角色需区分:设计主管、设计组长、设计成员,并且管理方式为向下兼容时,则需使用角色继承的 RBAC 模型。上层角色继承下层角色的全部权限,且可额外赋予权限。

此时除了对角色进行定义,还需要管理角色间的关系,通过关系来体现角色的层级关系,从而达到继承权限的效果。角色的继承关系主要有两种:树形图和有向无环图。

继承关系常常来源于公司团队的组织结构,此时常将角色与组织结构进行关联达到继承角色模型的效果。如下图所示的赵同学,其角色是「三级团队负责人」,与其并列的小组中有多个「三级团队负责人」的角色,但依附于左侧的组织结构树,各级负责人仅有查看和操作自己下属子节点的权限。

4. 限制的RBAC模型

在一个产品或系统中,部分角色可能是需要隔离的、不允许被同时赋予一个人的。跟大家熟知的不能既是「运动员」又是「裁判员」一个道理。

因此,对于众多角色中的一组,只能是单选的关系,但多组角色之间可以共同存在。如下图中,一个用户可以既为设计师又为管理员,但在设计师角色组中仅能被赋予一个角色,在管理员角色组中也仅能被赋予一个角色。

此外,限制还有可能是数量上的,比如一个产品组中必须有且只有一个管理员,不允许删除或再分配管理员角色,仅允许将负责人角色变更。

限制的模型不仅仅对分配过程产生影响,有时即使拥有了多种角色,因为不同的角色对同一个功能的使用方式或数据会产生冲突,所以使用时也需要进行限制。如下图所示为同一时间仅允许以一个身份登录。

根据不同的业务需求,限制的形式很多。需要注意的是不能仅依赖后端限制,而是要在前端展示清晰的规则和恰当的限制,避免用户出错和沮丧。

三、权限的拆分与设计

通过 RBAC 模型已经能够很好的搭建起用户、角色与权限之间的关系了。但具体是什么样的关系,以及「权限」这个抽象的概念具体如何规划?

这些都需要分析清楚才能进一步设计出完善的权限系统。

首先需要知道,一般产品的权限由页面、操作和数据构成。页面与操作相互关联,必须拥有页面权限,才能分配该页面下对应的操作权限。数据可被增删改查。

整体关系如下图所示:

因此,在设计之初我们就需要考虑到未来可能区分角色的地方,尽量解耦、模块化。对于技术来说,每一个页面模块、每一个操作都最好使用独立的接口。对于设计来说,需要保障所有角色因为权限而屏蔽掉部分操作和数据后,页面和流程仍能体验流畅。

保证初期设计支持后,配置权限时,还需要注意以下几点:

1. 确定是否支持前端配置

如果角色和权限相对固定,则一般将角色与权限的关系可以写在后台,改动时需要后端变更且重新上线。这种情况适用于公司内部系统等只有一个使用主体的系统。

如果需要自定义角色或者每个角色在不同使用者的场景下有不同的权限,则需要将角色的定义、角色与权限之间的配置体现在「前端用户配置页面」。这种情况适用于有频繁变动的自定义角色权限,和有租户体系的系统。

2. 以基本单元拆分,以业务逻辑配置

一般可将每个对象的「增、删、改、查」各自作为一个基本的权限单元。打个比方,在「人员管理」中,查看人员列表、添加人员、删除人员、编辑人员信息最好拆分为4个权限单元。在技术和设计上,我们希望能尽量做到解耦和模块化。

但是在业务层面有些操作却是一体的。这些不能拆开的权限在「前端用户配置页面」中建议打包成一个整体提供配置。例如:如果我们确定在系统的现有和未来业务中,仅分为普通成员有「人员管理」的查看权限,管理员有操作权限,则可将「增、删、改」三个基本权限单位合并为「操作」权限进行配置。

3. 页面权限优先于操作和数据权限

必须配置了页面模块权限后,才能配置当前页面模块下具体的操作权限,以及页面模块的数据展示权限。

4. 查看权限优先于增删改权限

正常情况下,一定要先能查看某个模块或操作,其它的增删改操作才有意义。因此在设计时,应在获取查看权限前限制其它权限的配置,或者配置其它权限时默认赋予查看权限。

5. 角色与权限的多种关系

角色与权限的关系不仅是单纯「是/否关系」,还包括以某种限制进行操作,和以某种程度访问数据。

例如在「人员管理」中:

  • 数据范围:用户拥有查看人员列表的权限,但仅能查看自己所在的团队;
  • 数据边界限制(上限等):添加人员时不能超过20个等。
  • 数据字段:HR 能查看人员列表中包括职级、薪资等字段,其它角色仅能查看姓名邮箱等字段;

6. 角色与权限的设计表达

在传达一个系统的权限设计规则时,设计师常常习惯用主观最直接的方式表达想法,如用「当……时,就……」的句式来表达。但一个平台中涉及的权限规则是非常多的,当通篇以这样的形式描述时,表达对象将很难理解。

正确的描述方式:更清晰的是基于开发的语言,和技术模型的结果进行表达。将各角色与权限单元绘制成网格,每个交叉点网格中描述该角色与权限的数据关系和限制。

如下图所示:

四、需要注意的Tips

1. 隐形的admin

在可自定义角色和权限的系统中,一般需要预留一个 admin 角色来进行系统的初始配置,用于添加首批的业务人员和配置基本的角色。

有的系统中允许存在上帝视角的 admin 角色,则其可以作为「超级管理员」显示在角色配置的列表中。有的系统中不允许这种角色存在,则可将这种角色设置为隐形的状态,仅赋予维护系统的工作人员。

2. 初始权限的赋予

对于允许用户自行加入的系统,需要设定一至多个默认的角色,有时可以是仅有最基础权限的「游客」角色。

初始权限还可以与用户既有的某些数据字段进行关联,如添加用户时获取到用户的岗位为「设计师」,则直接赋予「设计师」角色的权限。

3. 人员管理中对自己的处理

在人员管理中,管理员角色处理自己时需要额外注意。因为如果修改或删除了自己角色后,可能导致系统没有管理角色,从而无法添加其他成员和正常运行。设计时可添加判断,当自己为唯一管理角色时,禁止编辑和删除。

4. 无页面权限的提示

虽然可以通过页面权限限制直接隐藏当前用户没有权限的页面,但不能排除用户获取到权限外的 url 地址。当用户意外访问到没有权限的页面时务必提供「无权限」的提示,避免用户认为系统 bug。

总结

总结一下,整个权限系统设计就是定义各个节点和节点间关系的过程。

节点包括:

  • 用户;
  • 用户组;
  • 角色;
  • 角色组;
  • 权限(页面、操作、数据);
  • 权限组(页面、操作、数据)。

关系包括:

  • 是/否关系;
  • 继承关系;
  • 限制关系(互斥、范围限制、边界限制、字段限制……);

梳理清楚所有逻辑后,通过灵活定义节点和组合各节点之间的关系,便能够轻松完成角色权限设计的100种解法。
来源:优设                     时间:2018-08-06

【查看更多】

其它产品

相关搜索nba实时比分 bv1946伟德体育 nba比分直播 大赢即时足球比分 伟德betvictot 实时足球 球探即时足球比分网 nba即时比分实时查询 足球比分188 007琛球网 90ko极速比分 188金宝搏beat官网 体球网即时比分 即时比分网 球探足球比分网win007 大家赢即时比分 7m篮球即时比分网球 实时足球比分 足球比分 7m足球即时比分 球探比分 中国足球即时比分 即时比分直播 亚搏彩票app下载官网 亚博体亚博到账快速 bv1946伟德入口 weide1946源自英国 韦德国际1946手机版 韦德娱乐bv1946 源自英国始于1946 伟德体育官方下载 韦德国际1946始于1946 1946bv原自英国 bv伟德源自英国始于1946 bv1946伟德备用 伟德体育1946官网 163足球比分即时比分 zq163足球即时比分 韦德国际1946英国 韦德国际bv1946手机版 bet韦德官网1946 19468888韦德手机版 探球网足球即时比分球 8足球即时比分 007球探论坛链接 be七007足球比分 即时比分球探win007  琜探足球即时比分 球探体育比分 球琛网即时比分007 007足球论坛网 007足球比分网 足球即时比分直播 007球迷足球社区 007此007足球分比分 韦德国际19463331 韦德体育平台 韦德体育官方网站 韦德体育下载 韦德体育游戏平台 韦德体育彩票 韦德体育开户 韦德体育ios客户端下载 伟德体育官网 韦德体育下注 韦德体育注册 韦德投注app 伟德betvicror官网 2020欧洲杯在哪举办球探即时指数 2020欧洲杯赛程时间表 2020欧洲杯开幕式时间 比分网球探 比分网球探篮球 即时比分网球探 足球比分网球探 手机比分网球探 网球比分网球探 竞彩比分网球探 永利赌场注册-澳门永利官网 永利娱乐网址-澳门永利赌场

 2020欧洲杯在哪个国家 2020年欧洲杯举办时间 欧洲杯2020举办地 2020年欧洲杯举办国家

全球即时比分网 天天赢球 即時籃球比分 猎球者 球探球即时比分 球琛 篮球球探比分 球琛足球 懂个球官网 体球比分直播 球琛即时比分 球琛网 球探比分直播网 足球比分90vs 手球即时比分;比分网球探篮球 足球比分网球探 手机比分网球探 网球比分网球探 韦德国际源于1946 韦德1946国际网址 源自英国始于1946韦德国际 365必发娱乐网址 必赢娱乐 必发娱乐官方网站 bte365正规网站 风雷游戏 必发娱乐官网 365备用网站 bet28365 nba实时比分球探 nba彩经 篮球直播 欧洲篮球联赛直播 球探足球比分电脑版本 彩客网完整比分直播 捷报比分足球即时比分 即时篮球比分 7m体育 网球比分第一比分网 篮球比分 篮球比分直播 7m篮球即时比分网球 7m足球即时比分二合一 球探足球比分直播数据 完整比分即时比分直播 探球网足球即时比分app 球探即时篮球比分 nba实时比分 球探nba NBA比分网 ncaa比分直播 nba篮球比分直播 nba篮球比分 nba球探比分网 spbo即时比分spbo spbo即时比分新版手机彩票投注 pk10彩票开户_pk10彩票投注_pk10手机版 190踢球者即时比分 足球投注哪个app好 90比分即时足球比分 007球探比分网 比分即时足球比分 007球探比 球探即时足球比分网 win007足球比分 win007球探 win007即时比分 bt007球探比分 球探比分网 007球探比分直播 win007球探网 球探即时足球比分直播 win007足球即时比分直播 win球探比分 彩客网 90即时足球比分网 大赢家足球比分90vs 足球比分90vs足球比 皇冠比分网即时比分90 90vs足球比分手机版 下载并安装90vs足球比分 足球比分90vs 7m视频 90比分网即时比分走地 bet007足球即时比分官网 足球实时比分90vs 皇冠90vs足球比分 篮球比分直播90vs 亚博yaboapp 亚搏娱乐 官方网站 亚搏体育app 亚博登录16c in 亚博视频破解版 亚博官方下载地址 亚博app下载安装 亚博直播破解版app 伟德足球官方网站 金沙彩票投注平台 澳门十大网上博网址 澳门新葡8455最新网站韦德体育在线 韦德体育网址 韦德体育登录 韦德国际1946官网 大赢家足球即时比分 球探比分网 365bet体育在线平台 365bet体育在线中文网 365bet体育在线滚球 365bet体育在线导航 足球投注app排行 足球投注量查询-足球投注app那个好-足球现金投注app-足球投注.足球投注app万博,足球投注万博app下载,意甲联赛直播万博app 365bet体育在线客户足球比分网球探澳门葡京平台 实况足球世界杯2002 实况足球世界杯大赛 实况足球世界杯游戏 实况足球世界杯视频 betvlctor伟德国际app 球探即时足球比分网 球探比分即时足球比分 足球即时比分 即时比分 球探比分网 即时足球比分网 足球即时比分 即时比分 pp体育 球探比分网址 球探足球比分网直播 雷速比分即时足球比分 章鱼tv直播 体球比分即时足球比分 足球比分网500 球探比分网即时比分网球探 即时比分网 及时比分 大家赢即时比分 即时比分 亚博登陆 足球即时比分 彩客网首页比分直播 捷报即时比分网球探 比分即时足球比分 即时比分捷报足球即时比分 足球90分钟vs即时比分 足球即时比分90 90ko极速足球比分 90vs足球比分手机版 球探比分足球即时比分 足球比分90vs极速 90vs篮球分即时比分 大赢家足球90比分 九零足球即时比分网 足球滚球即时比分 大赢家足球即时比分直 即时比分雷速网球即时比分 捷报比分足球即时比分 最全的网球比分直播 网球即时比分直播007 7m篮球即时比分网球 足球即时比分90vs比分 球探足球比分直播数据 球棎比分网足球即时比分 速报网球即时比分 丘的网球即时比分 7m足球比分即时比分 win007网球即时比分bvi韦德体育app 韦德体育betvictor betvlctor韦德体育手机版 彩票站有世界杯投注 世界杯体彩足球竞彩 世界杯彩票投注规则 世界杯官方投注平台 360世界杯竞彩彩票 世界杯冠军竞猜投注 竞彩足球世界杯竞猜 世界杯足彩竞彩 世界杯体育竞彩结果 女足世界杯竞彩 世界杯竞猜淘汰赛 2014年世界杯足彩冠军竞彩 betvlctor伟德体育投注1946 濠牛b娱乐注册送58 伟德国际1946苹果手机 betvlctor伟德体育1946官网_betvlctor伟德1946投注平台 双色球论坛 8波手机比分手机版 注册送18元 注册送18无需申请 注册送28元无需申请 注册送27彩 最新送体验金网站 开户就送38元体验金 注册送礼金无需申请 大爆奖注册送58 开户就送体验金108 申请注册送88元彩 澳门新葡新京官方网站澳门新葡亰在线a视频澳门新葡亰平台游戏澳门新葡8455最新网站澳门新葡亰平台9411澳门新葡亰网址p815澳门新葡亰518澳门新葡亰欢迎访问新萄京娱乐网址2492777澳门新葡亰送38 最新送体验金网站星港娱乐场送体验金民间娱乐注册送39网站1号娱乐注册送38亨利娱乐注册送68贺彩娱乐注册送28元开户就送38元体验金注册送58三亚娱乐场注册送38元送体验金的娱乐网站 betvlctor伟德国际 竞彩足球是骗局吗 最靠谱的足球竞彩贴吧 竞彩足球app正规吗 双色球字谜图大全 澳客彩票网官网 澳客彩票app免费下载 世界杯足球直播 188金宝搏官网下载app 大奖彩票注册送188 190踢球者即时比分 188金宝搏bet官网下载 最正规外围足球网站 足球外围app哪个好 有名的足球外围平台 买足球最好的外围平台 手机足球投注365网站 世界杯外围投注玩法7mcn足球即时比分l7m篮球即时比分网球 90比分网足球比分即 bet007足球即时比分 即时比分大赢家90vs 足球比分90vs足球出分 90vs比分网 90ko极速足球比分 90vs篮球比分 90vs即时比分 澳客竞彩手机版 90ko极速足球比分网 90极速足球即时比分 足球即时比分90vs 即时比分足球比分 大赢家足球即时比分 雪缘园足彩比分直播 7m体育即时比分 7m足球比赛即时比分 188比分直播 7mcn足球即时比分l金沙彩票平台app 金沙彩票手机版app 金沙彩票官方网站 球探足球比分竞彩app排行榜 目前最好的足彩app 竞彩足球什么软件靠谱 精彩彩票 app登录 彩票app排名前十名 足球竞彩app排行榜 好用的足球竞彩app 竞彩足球最好的app 最可靠的竞彩足球app 中国竞彩足球app 足球竞 猜app排行 大赢家地即时比分 310v大赢家比分 大赢家足球即时比分中 bet007足球即时比分 韦德赌球APP 即时比分500 雪缘园足彩比分直播 大赢家足球即时比分直 大赢家世界杯即时比分 即时比分网 即时比分大赢家310 win007足球即时比分直播 大赢家比分足球比分 2018世界杯投注网站 世界杯投注方法 世界杯都是在哪里投注 世界杯彩票投注官方 世界杯彩票投注网站 世界杯投注竞彩 看世界杯新闻投注彩票 手机上在哪里投注世界杯 2018世界杯在哪投注 世界杯投注代理 2018世界杯投注平台 博体即时比分 伟德棋牌 天天乐棋牌 永利博体育 必赢体育 威廉希尔娱乐 立博博彩 bodog博狗娱乐 菲彩国际 万博体育app 奥讯球探比分网 立博博彩 即时赔率 华体即时赔率足球赔率 500彩欧洲即时赔率 球探赔率 足球即时赔率 澳盘动态即时赔率 华体即时赔率 球探网赔率 澳门赔率即时比分 竞彩足球即时赔率 澳盘即时赔率 足球比分网即时赔率 澳彩即时赔率 澳彩足球即时走地盘 华体足球即时赔率 欧洲足球即时赔率 足彩澳盘即时盘 亚盘即时赔率 足球即时指数即时赔率 足球赔率即时赔率 北京赛车官方网址 今日彩票app 大中华彩票app 玩彩票app  2000彩娱乐平台 火呗娱乐平台 紫金娱乐平台登录 轩彩娱乐平台 七喜娱乐平台登录网址 菲雅娱乐平台 易赢娱乐平台 1号娱乐平台登录 彩立方娱乐平台 网上信誉搏彩平台 彩世纪娱乐平台 东魅娱乐平台 久盛娱乐平台 七喜娱乐平台 巨龙娱乐平台 高频彩娱乐平台 誉鼎娱乐平台 汇盛娱乐平台 星港娱乐场送体验金 最新送体验金网站 开户就送体验金娱乐 篮球90比分 雪园NBA即时比分 nba即时 nba即时比分直播 nba即时赔率 nba即时排名 nba比分 NBA比分网 蓝球比分直播 球盘体育即时比分 即时比分 九九体育 体育网足球即时比分 即时比分足球比分体育 体球网比分直播 90比分即时足球比分 雷速体育即时比分 7m体育即时比分 大赢即时足球比分 90即时足球比分网 第一比分 7m体育即时比分 90win即时比分 90win足球比分直播 90win足球即时比分 90win足球 90足球即时比分 win足球即时比分 win比分 足球比分 即时比分 比分直播 win足球比分 90win语音比分 90比分网足球比分即 9o足球即时比分 90vs极速足球比分 90win比分网 90比分网 90win指数比分 90win语音比分 滚球 球琛足球比分 433足球比分网 433足球网足球比分 90win即时比分 hg1088 com皇冠 433足球网最新 433足球网 华体网足球即时比分 zq163足球即时比分 433足球 90足球即时比分 球网足球即时比分 433足球网网址 迅盈足球即时比分 433足球网最新网站 雪缘园网足球即时比分 大赢网足球即时比分 433足球网址