美文网首页产品经理@产品@IT·互联网
SaaS后台经验分享:如何设计权限管理

SaaS后台经验分享:如何设计权限管理

作者: PMhome123 | 来源:发表于2018-12-21 16:59 被阅读4次

权限管理的作用

SaaS后台系统中,数据具有敏感性,由于工作职责不同,所以用户拥有的权限也不同。因此,系统需要给用户分配权限,使得用户在规定范围内使用系统。

RBAC模型介绍

本文介绍的RBAC模型是一个模型族,它包含了RBAC0~RBAC3四个概念性模型。

  1. 基本模型RBAC0定义了完全支持RBAC概念的任何系统的最低需求。RBAC1和RBAC2两者都包含RBAC0,但各自都增加了独立的特点,它们被称为高级模型。
  2. RBAC1中增加了角色分级的概念,一个角色可以从另一个角色继承许可权。
  3. RBAC2中增加了一些限制,强调在RBAC的不同组件中在配置方面的一些限制。
  4. RBAC3称为统一模型,它包含了RBAC1和RBAC2,利用传递性,也把RBAC0包括在内。这些模型构成了RBAC模型族。

本文主要介绍RBAC0模型,虽然是最基础、最核心的权限模型,但只要学习理解了其中的思想,便可以设计RBAC1~3的模型了;

RABC0的设计

RBAC(Role-Based Access Control )意为基于角色的访问控制,角色是权限集合,通过给用户分配权限达到控制访问的目的。


RBAC0示意图

RBAC认为权限的过程可以抽象概括为:判断【Who是否可以对What进行How的访问操作(Operator)】这个逻辑表达式的值是否为True的求解过程。

即将权限问题转换为Who、What、How的问题,因此我们需要定义的是角色、资源和行为。

比如我们需要考虑:

  • 系统有哪些用户,可以分为哪些角色;
  • 系统有哪些功能(资源)需要按权限来划分;
  • 功能(资源)的拆分粒度,到页面还是到具体按钮操作;
  • 新用户的默认角色和权限;
  • 用户与角色是“多对一”还是“多对多”;
  • 新增的功能是默认全部角色“可用”还是“不可用”;
  • ......
    这些都是比较细节的问题,我们在设计功能时需要考虑。

下面主要说一下Who,What,How的定义。

1.定义角色(Who)

前期需要进行用户访谈,了解不同岗位的用户的工作职责,并抽象出几个角色。

然后,用户与角色之间的关系需要明确是“多对一”还是“多对多”。这个问题需要结合业务场景进行讨论,如果用户的工作职责界限分明、不同工作岗位都有专门员工,那么此时可以设计成“多对一”,即用户只有一个角色,一个角色可以对应多个用户;


用户与角色“多对一”

如果某些用户的工作内容跨越几个职能,则可以设计成“多对多”,即一个用户可拥有多个角色,一个角色也可对应多个用户。


用户与角色“多对多”

这里还需注意的是,为了系统的灵活性,角色的权限应是可编辑的,管理员可以创建角色,并对角色的权限进行修改以应对工作场景的变化。

2.定义资源(What)

资源包括功能和数据。
定义功能时需要明确,功能权限到页面级别还是操作级别。在一些权限严格的业务场景,比如电商ERP中,则会要求定义到操作级别,比如销售报表导出按钮,计算毛利率按钮等;如果权限比较宽松的,则可能只到页面级别,比如该角色是否能访问订单列表等等。这些都需要根据业务需求决定。

定义数据时则比较简单,可以根据该角色绑定的店铺或区域来限制用户的数据权限,比如美国运营专员只绑定美国区的,则只能获取美国区的数据。

3.定义行为(How)

行为包括增删查改。不同的角色可根据需要设置不同的操作权限,比如对于同样的成绩管理页面,学生只能查看成绩,不能修改成绩;但教师同时拥有修改成绩和查看成绩的功能。

相关文章

  • SaaS后台经验分享:如何设计权限管理

    权限管理的作用 SaaS后台系统中,数据具有敏感性,由于工作职责不同,所以用户拥有的权限也不同。因此,系统需要给用...

  • SAAS后台权限设计案例分析

    saas平台由于其本身“按需购买”的特性,在设计规划权限时,需要考虑统一配置权限如何规避企业没有购买的应用,以及如...

  • SaaS知识体系

    技术 SaaS系统用户权限设计 有赞权限系统 剖析SalesForce的多租户架构(PAAS\SAAS\云计算) ...

  • 业务后台系统之流程设计

    上周在《业务后台系统之权限设计》中总结了自己在最近一个后台业务系统项目中的后台产品设计经验,本篇继续总结完后台设计...

  • 后端篇 - 管理后台的权限规则

    管理后台的验证规则包涵权限和操作组的设计。 后台添加流程: 流程解析: 权限分配: 上文已解释清楚了权限分配的具体...

  • python---数据库设计的三大范式

    一 * * * * * 项目设计理念 ① 权限设计 后台管理系统 登陆页面 (用户包括 * 管理员 超级用户) 权...

  • 权限管理系统

    最近读到有关后台权限管理这块的文章,觉得有点意思,遂去做了一下调研。我了解到,后台系统与saas实际上有许多共通之...

  • 后台系统权限设计总结

    后台系统权限设计总结做B端后台,一个老生常谈的话题就是权限控制,如何做权限控制,初步整理一下。用户场景后台系统常常...

  • 系统权限功能的设计

    几乎所有的管理后台都会涉及到权限的设计,权限控制是管理后台的重要功能,可以有效的提高系统的安全性,减少误操作、数据...

  • Ant Design Pro开发后台管理系统(权限)

    前言 权限是后台管理系统常见的需求,后台开发必须考虑设计的模块,antd-pro给我们提供了很好的关于权限的封装,...

网友评论

    本文标题:SaaS后台经验分享:如何设计权限管理

    本文链接:https://www.haomeiwen.com/subject/ezbwcqtx.html