权限管理之三权分立设计模型

11 评论 18536 浏览 54 收藏 7 分钟

编辑导读:权限管理是一个基础功能,如何满足多用户,多层级,多部门,甚至多租户的需求?本文作者对此进行了分析,与你分享。

权限管理如何才能满足多用户,多层级,多部门,甚至多租户的需求。对应SaaS平台的权限设计如何能满足不同用户的不同的需求。对应平台型产品如何结合业务场景设计灵活的权限管理系统。

我认为要遵循三个原则:

  1. 层级要够,预留拓展空间
  2. 权限分离,可实现排列组合
  3. 专业平台用行业术语,降低学习成本

接下来以机器学习平台权限设计举例,给大家介绍一下权限设计流程和框架。

一、机器学习平台权限管理设计

1. 名词解释

  • 租户:指的是使用机器学习平台的一家企业或者机构
  • 业务线:指使用机器学习平台的一家企业或者机构下面的业务线
  • 平台管理员:指的是机器学习平台的管理员,可开通租户管理员账号
  • 租户管理员:指租户管理人员,可开通该租户下的用户账号

2. 数据权限设计架构图

租户管理员可创建业务线,及业务线下的用户,每个用户可同时属于多个业务线,但只能属于1个租户。

3. 操作流程

1)创建租户

平台管理员登录,点击创建租户

2)创建租户管理员

平台管理员创建租户管理员

租户选中为下拉单选

3)创建业务线

租户管理员创建业务线

4)创建用户

租户管理员创建用户

业务线为下拉多选

5)创建角色

平台管理员和租户管理员都可创建角色

创建角色和赋予角色三个权限

  • 页面权限
  • 操作权限
  • 数据权限

创建角色

分配菜单权限

分配功能权限

分配数据权限

数据权限分配为单选

  • 租户数据:为该租户下所有数据权限
  • 业务线数据:为该角色用户所属业务线数据权限
  • 个人数据:只能查看个人数据

二、三权分立

通过以上案例可以看出,是把菜单权限、页面权限、数据权限赋予角色,把角色赋予用户,用户属于业务线,业务线归属于租户。

页面权限:

页面权限是指针对系统中具体的页面有访问的权限。例:整个系统中有三十个页面,A员工权限只能查看其中的十个页面。

操作权限:

操作权限是指系统中的功能按钮有具体的操作权限。例:A员工在查看到十个页面里,其中一个页面是模型管理页面,但是A不是运营人员,所以只能查询模型信息,而不能对模型进行新增、修改、删除等操作权限。

数据权限:

数据权限是指能够查看或下载的数据范围的权限,例:模型管理页面中包当前渠道下所有模型列表。不同角色在同一个页面看到的信息是不同的。渠道管理员可以看到所有模型。而工程师只能看到自己创建的模型。

三、总结

以上的权限设计模型是RBAC模型,基于角色的访问控制(Role-Based Access Control),再在角色授权上实施三权分立,使得权限管理更灵活。当然,针对不同的业务线权限设计也不尽相同,但是对应多用户的系统,还是倾向于“杀鸡用牛刀”,因为随着业务发展,再拓展权限的话成本会跟高,权限管理必须要有顶层设计,早比晚好。

#专栏作家#

老张,人人都是产品经理专栏作家。《人工智能产品经理技能图谱:AI技术与能力升级》作者,AI产品经理,专注于自然语言处理和图像识别领域。现智能保险创业公司合伙人,希望与人工智能领域创业者多多交流。

本文原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 张老师你好,您的文章里面我有两个问题没看明白:1⃣️功能权限配置中不同的操作,是怎么配置上去的?2⃣️业务线和菜单有什么关联?

    来自天津 回复
    1. 1,功能权限配置中不同的操作,是怎么配置上去的?答:增删改查等按钮都是程序写死的,每增加一个操作权限就需要程序员写一遍。
      2,业务线和菜单有什么关联?答:业务线是租户下的分支,和菜单没有关联。菜单和角色有关联,角色和菜单有关联。业务线主要区分数据权限。

      来自北京 回复
  2. 菜单权限和功能权限的区别没看出不同~~是多了“编辑”的选择吗??还是说是想表达字段权限??题目是三权分立·~为啥后面一带而过了~~很想看三权分立后,对应的三员是怎样的操作流程。shsky231,刚好也在学习这块,可以交流一下么~~

    来自北京 回复
  3. 当给了菜单下的操作权限,但是没有给菜单权限怎么搞?会感觉矛盾吗?

    来自上海 回复
    1. 不会呀,没有菜单权限就看不到相应的操作按钮,给与不给就没有关系了,因为用户根本点不到

      来自北京 回复
    2. 一般而已,操作按钮是和菜单绑定在一起的,多对一

      来自江苏 回复
    3. 一般情况下,菜单权限的优先级高于操作权限的优先级,只要分配低优先级的功能必须先分配高优先级的功能,否则会出现有删除权限却找不到操作位置的尴尬情况(删除按钮在列表页面,却没有分配查看列表页面的权限)。
      具体做法可以通过交互的方式解决,比如检测到勾选低优先级的功能就自动帮助勾选高优先级的,或者通过提示性的文字帮助用户组合勾选。

      来自北京 回复
    4. 嗯嗯,可以通过这种方法来解决权限和页面不统一情况。

      来自北京 回复
    5. 您好 那新建页面算是菜单权限吗 如果我分配了新建按钮的权限 我没有分配新建页面的权限呢 也同样依靠于高低优先级来自动勾选吗?
      还是说和这个按钮相关的页面(无论是承载这个按钮操作的页面 还是按钮操作跳转的页面)均进行优先级的自动提示?

      来自山东 回复
  4. 不错!有所指引

    来自北京 回复
  5. 什么玩意

    来自北京 回复