Page 345 - 《软件学报》2024年第4期
P. 345
吴信东 等: HAO 打卡系统: 以组织智能成就智能组织 1923
冲突, RBAC 模型因此失效. HAO 打卡的隐私权限是与组织架构紧密相关的, 由于组织架构角色之间的关系十分
灵活, 所以我们从机器智能出发, 设计了一种从粗粒度到细粒度的隐私权限管理方法 (见图 7). 对用户来说, 粗粒
度是面向用户在组织架构中所属角色 (见表 1) 的权限管理, 细粒度是面向用户相关的数据层面的权限管理. 在此
基础上, 考虑到系统中可能存在异常用户行为 (如恶意修改和删除数据的用户), 为了让权限管理成为一个可管控
的闭环, 我们还提出 HAO 打卡闭环权限管理架构.
数据权限控制中心
权限请求确定限制
用户权
用户权限控制中心
企业负责人 用户权 限细粒
限粗粒 度管理
组 部门管理员 角色 单组织 类型 操作请求角色分析 度管理
织 用户 操作 打卡数
架 汇报上级 角色 请求 据管理 查询/数 打卡数据
构 类型 据操作
用户
普通员工
多组织用户
图 7 从粗粒度到细粒度的隐私权限管理方法
表 1 角色权限表
角色 角色隐私权限
企业负责人 制定企业考勤规则, 对该企业的所有打卡数据, 具有添加、删除、修改和查看的权限
部门管理员 对该部门的所有打卡数据, 具有添加、删除、修改和查看的权限
汇报上级 对其下属的所有打卡数据, 具有修改和查看的权限
普通员工 对个人的所有打卡数据, 具有查看的权限
权限控制中心分为用户权限控制中心和数据权限控制中心两个部分 (如图 7 所示). 其中用户权限控制中心用
于管理用户在具体应用中所具有的不同权限; 数据权限控制中心用于限制系统中用户针对每个数据所具有的最大
权限, 以保证数据资产的隐私和安全. 权限控制的基本过程为: 针对某用户对某一数据的操作请求, 用户权限控制
中心首先获取该用户的角色集合 (粗粒度权限), 判断是否可根据该粗粒度权限集合直接判断是否有该数据的请求
权限, 如果有权限则直接返回; 否则, 在数据权限控制中心查询该用户针对请求数据的角色并以此判断是否拥有所
请求的权限 (细粒度权限).
我们以删除员工的打卡数据为例, 具体说明从粗粒度到细粒度的隐私权限管理方法的流程, 这里分为两种: 首
先是组织删除员工数据, 其次是员工删除个人数据.
情况 1 (组织删除员工数据): 用户 A (部门 C 管理员) 请求删除用户 B (属于部门 C) 的打卡数据 D. 该请求经
由“用户权限控制中心”判断, 判断用户 A 为部门 C 的管理员角色 (粗粒度权限), 拥有该部门所有打卡数据的删除
权限, 且用户 B 属于部门 C, 因此将允许删除的指令传送给数据接口. 系统判断删除的该条记录是无组织记录还是
有组织打卡记录, 通过“数据权限控制中心” (细粒度) 进一步判断所请求数据上的具体权限. 若为用户 B 的无组织
打卡记录, 用户 B 的该条打卡记录不受影响. 最终返回的结果为用户 A 可以将组织内部数据 E'进行删除, 但对属
于用户 B 无组织打卡数据 E 进行保留, 由数据接口执行指令, 并将结果返回给用户. 情况 1 的具体执行流程如
图 8(a) 所示.
情况 2 (员工删除个人数据): 用户 A 请求删除个人的打卡数据 E, 该请求发给“用户权限控制中心”判断, 用户
具有删除打卡记录的权限 (粗粒度). 系统判断用户删除的打卡记录是无组织打卡记录还是有组织打卡记录, 进一
步通过数据权限控制中心 (细粒度) 来判断数据的具体操作. 若为无组织打卡记录且未共享给所属单位, 系统删除
该条数据, 若共享给所属单位, 则系统保留组织数据 E', 删除个人数据 E; 若为有组织打卡记录, 则用户无法删除该
条记录. 情况 2 的具体执行流程如图 8(b) 所示.