首页 > 其他分享 >系统权限的反思

系统权限的反思

时间:2022-09-20 10:56:38浏览次数:52  
标签:角色 岗位 系统 人员 反思 授权 权限

一、系统权限设计现状

   目前大部分的应用系统,包含销售管理系统在内,系统权限的设计方案均采用的是RBAC模型,所谓RBAC就是:用户、角色、系统功能,用户属于某些角色、角色拥有某些系统功能;虽说不同系统间,可能存在差异,但差异的地方更多的在于“系统功能”细化的程度,有的到页面级,有的到数据级,有的到操作按钮级,但本质是一样的。

   示例如下图所示:

      

 

 

      此权限设计模型,在销售系统建设初期,系统功能和使用人员规模都不大的情况下,此模式完全够用。

      但随着销售业务不断迭代,系统功能和使用人员范围也在不断扩大,此时此刻就面临以下一些问题和场景:

     1> 场景一:客户档案台账及客户下单历史,此功能无论是销售人员、财务人员、商务人员、产品运营人员、甚至审计人员都需要查看,这样的场景下,我们很自然的想设置一个“客户台账查询及下单历史查看”角色,这个角色同时拥有“客户台账查询”、“客户下单历史查询”功能,这样凡是需要查看的人员均指向这个角色即可。(这属于为【功能集合授权】)

        【功能集合授权】方案:

            优点:无论公司那些人需要这样的权限,加入这个角色就可以了;

            缺点:当人员出现调动、离职等情况时,需要手动从此角色中移除;

    2> 场景二:某天有位同事在OA上申请开通 客户档案查询、订单台账查询、申请单台账查询等权限,并且申请也已审批通过,我们很自然的分别在“客户档案查询”、“订单台账查询”、“申请单台账查询”角色中都加上这位同事。后来他们同部门同组的其它同事也纷纷申请开通这些权限。此时困难就出现了,若他们部门的每位同事均按上述相同方法处理也不是不可以,但总觉得别扭。因为这是很明显的,要根据岗位职责进行权限划分的。所以应对建立一个【XXX岗位】这样一个角色,凡是属于此岗位的人员,直接具备了相同的权限。(这属于【岗位集合授权】)

       【岗位集合授权】方案:

          优点:人员按岗位进行区分,很容易跟HR组织关联(【这样才有可能实现权限的自动化设定】),若人员调动,离开此岗位,权限自然就没有了。

          缺点:若没有大规模组织结构调整,此方案在配置权限时,会轻松很多,也不太容易出错。但是一旦出错就是大范围的误。

  

  上述两种场景,在销售管理系统运转到目前阶段,业务范围和使用人群在不断扩大,上述两种场景现在已开始同时出现。我们需要尝试重构销售系统的权限架构。

  RBAC模式是基础,但我们可以尝试在此基础上改进适用我们自己的模式。

 

二、我们要解决的问题是什么?

  1> 现在公司处于高速发展阶段,铁打的营盘流水的兵,所以公司人员调岗、流动很大,也很频繁,我们首先要解决的问题是如何让人员入职后,系统自动匹配权限,尽量减少运维人员干预?

  2> 当人员职级上下浮动变化时,某些特殊业务权限,如何设定?例如产品政策支持,业务员提交后,需要大区经理审批,若此区组的区域经理是L6以上,则可代大区经理审批,否则由大区经理自己审批。职级的变动影响权限的设定。

  3> 若再出现上述【功能集合授权】和【岗位集合授权】的业务场景时,如何处理?

  4> 临时授权用户,如何处理?曾经出现过 OA系统给外部人员开通临时授权的情况,那么销售系统会不会也出现给某些人员开通临时查看权限呢?如果有,怎么支持?

 

三、我们可以尝试采用如下方案:

   1.更多采用【岗位集合授权】:

     a) 更多采用【岗位集合授权】的方式,系统权限划分尽量按照部门、岗位进行划分;

     b) 将设定的岗位角色,与HR系统的组织结构进行自动关联,人员随着HR人员组织自动进行入、调、离;(根据业务设定岗位角色与组织结构自动关联的范围)

  2、对非组织结构中的,特殊业务权限,进行规则设定和配置:

    a) 将此类角色,标识为特殊角色,同时配置相应的规则,如是否满足L6,若是,则加入此角色。(即:【动态岗位集合授权】)

  3、【功能集合授权】和【岗位集合授权】方案,可按照如下原则进行取舍:

    a) 若是业务上需要设定权限,不同业务部门都需要同一个权限,我们还是尽量按照【岗位集合授权】来划分,这样应对将来变动性、自动性将会更强一些。只不过当下配置的角色可能会多一点。

    b) 若是系统所需,例如“系统管理员”、“客户档案管理员”等,这样的角色就只能按照【功能集合授权】方式进行处理。

 4、针对临时授权的问题,首先销售系统要在权限设置上具备此能力。

    a) 临时授权需走审批流;(此时需要考虑外部人员,销售系统可内置几个查看账号,此账号的密码为动态密码)

    b) 临时角色要临时授权期限,当期限到达后,此角色自动失效。

 

  若按照这些方案执行的话,我们仍需考虑【岗位集合授权】的硬伤,如何避免大范围的权限错误。

    

    

 

标签:角色,岗位,系统,人员,反思,授权,权限
From: https://www.cnblogs.com/qiupiaohujie/p/16710242.html

相关文章

  • Vue 系统组件 <Teleport> 简介rr
    <Teleport>传递组件@说明:将组件内的一部份模板传送到组件外层对象上,且不影响整个组件逻辑。 <Teleportto=""display=""></Teleport> 属性:to[必需String|H......
  • MongoDB 用户与权限
    1、创建查询role:custom_role,对dbidap_zl下的collection:tab1、tab2只有查询权限1)使用trs用户登录数据库2)切换到db:idap_zl创建role,替换示例中的collection,如果......
  • linux系统 net.core.somaxconn参数
    1、如何查看该参数值1)查看所有内核参数及值sysctl-a #查看所有内核参数及值2)查看net.core.somaxconn参数[root@localhost]#sysctl-a|grepnet.co......
  • 虚拟机无法ping通主机,主要是由于公用网络未启用,启用步骤如下:控制面板---->系统和安全-
    主机可以ping通虚拟机,虚拟机ping不通主机1、在本机安装了虚拟机,虚拟机中使用的是Ubuntu64位系统。 安装完成后,首先关闭了本机的防火墙,步骤如下:  控制面板--->......
  • 设计模式在业务系统中的应用
      本文的重点在于说明工作中所使用的设计模式,为了能够更好的理解设计模式,首先简单介绍一下业务场景。使用设计模式,可以简化代码、提高扩展性、可维护性和复用性。有哪......
  • C++个人财务管理系统
    C++个人财务管理系统个人财务管理系统功能要求1.初始化:将余额置零;2.记录发生的业务操作:生成一条新的业务信息(包括日期(年、月、日)、业务说明(如收到父母转过来的生......
  • 20220919模拟赛反思
    时间分配不合理、自己浪费太多时间在第二题,然后最后没做出来。导致后面的题甚至没认真思考,只来得及打暴力打部分分技巧掌握不熟练。就如第三题N<=20的部分分打了1个多......
  • 查看操作系统版本的 N 种方式(Windows、CentOS、Ubuntu、Debian)
    前言我们使用的各种软件,运行都离不开操作系统。大家都知道操作系统主要有Windows和Linux,如何查看当前操作系统的具体版本,你知道哪些方式呢? 1.WindowsWindows系统大家......
  • 为什么文件系统要格式化
    磁盘为什么要格式化? 我们知道,硬盘和软盘都必须格式化后才能使用,这是因为各种操作系统都必须按照一定的方式来管理磁盘,而只有格式化才能使磁盘的结构能被操作系统认识。......
  • 安装k8s系统初始化的shell脚本
    ]#catinit_centos7.sh#!/bin/bashexportLANG="en_US.UTF-8"init_yum_repo(){echo"===================初始化yumbase源========================="sleep2cu......