会博通·代码搬运工头像
PDF区域级脱敏是怎么实现的?拆解一下黑白名单、作用域隔离和时间维度权限封面图

PDF区域级脱敏是怎么实现的?拆解一下黑白名单、作用域隔离和时间维度权限

各位好,我是代码搬运工。平时搬砖搬惯了,今天搬一块档案信息化领域的砖——聊聊会博通档案系统里的数据脱敏功能。不为别的,这套设计里的几个权限模型细节,做业务系统的同学都可以抄作业。

背景:文件级权限的粒度困局

做文档类系统的都绕不开一个问题:权限控制的粒度。

文件级权限(能不能访问这个文件)实现简单,一个ACL就搞定。但档案场景里,真实的权限需求是区域级的:同一份PDF,A角色可以看全部,B角色只能看去掉身份证号、薪酬字段之后的版本。

粗暴方案是复制多份文件、各配权限——数据冗余,一致性噩梦。合理方案是单份文件 + 区域遮蔽规则 + 按人渲染。会博通走的是后者,我们看看它的规则模型。

规则模型一:脱敏框(区域定义)

管理员在PDF预览界面进入编辑模式,鼠标拖拽生成脱敏框——本质是页面上的一个矩形区域坐标。未授权用户请求渲染时,框内内容呈现遮蔽状态。

工程上值得注意的点:

支持单文件多框,框可多选后批量配置规则,批量调整后需显式点击"批量调整确认",全部配置完成后再"修改确认"才落库生效。两步确认的设计牺牲了一点操作顺滑度,换来的是防误操作——权限类配置的修改,宁可多一步确认。

脱敏框支持按已配置的人员/组织检索,命中框体高亮。这个功能对应的运维场景是人员变动:搜索一个名字,定位所有关联的脱敏规则,逐一复核。做权限系统的都懂,规则的"可查询性"和规则本身一样重要。

规则模型二:作用域隔离(条目级 vs 流程级)

这是整套设计里最漂亮的部分。脱敏分两种作用域:

条目脱敏:规则挂在档案条目上,所有引用该条目的借用流程同步继承脱敏效果。相当于全局默认策略。

流程内脱敏:规则挂在流程实例的附件上,只在当前流程生命周期内生效,不回写原始条目。相当于局部临时策略。

用代码思维类比:条目脱敏是基类里的默认配置,流程内脱敏是某个实例运行时覆盖的局部配置,覆盖不污染基类。临时授权场景(专项审计、外部检查)用流程级,结构性敏感字段(证件号、薪酬)用条目级,两个作用域互不干扰。

权限入口也做了分离:条目脱敏要求类型管理员权限 + 条目阅读权限;流程内脱敏要求流程编辑权限,且操作者所属职能必须在参数 ProcessShuiYinRight 配置的白名单职能内。配置脱敏本身就是一种敏感操作,这个约束很必要。

规则模型三:黑白名单与冲突裁决

每个脱敏框可配置:

黑名单:名单内的用户/组织看到遮蔽状态;未在名单内的默认可见。

白名单:定向放行,且优先级高于黑名单。

官方文档给的冲突用例:用户在黑名单、用户所属组织在白名单 → 该用户可见。也就是"更细粒度的放行声明压过粗粒度的遮蔽声明",裁决顺序确定,不留解释空间。另外系统约束同一用户/组织不可同时出现在黑白两个名单里,从录入端消灭一部分冲突。

搜索范围也按作用域收窄:非流程条目可搜全系统组织架构;流程内文件只能搜当前流程涉及的人员。数据可见范围跟着操作上下文走,这个细节做得很讲究。

规则模型四:时间维度

脱敏规则自带生效日期:默认一年,起止时间可改;借用流程中的脱敏规则默认继承流程的"借用时间"作为生效周期。

翻译一下:授权是带TTL的。借用到期,脱敏放行自动失效,不需要人工回收。权限系统里最经典的事故是"僵尸授权"——人走了权限还在。把过期时间做成规则的一等公民,比任何"记得定期清理"的口头约定都可靠。

边界与纵深

最后说清楚这套机制的边界:脱敏是渲染层的访问控制,防的是"越权查看",防不了"授权用户拍屏幕"。所以实际部署里它从来不是单打独斗——同一套系统里还有防扩散水印(查看/下载/打印全程嵌入经手人标识,外流可溯源)、审计追踪(全量操作留痕)、三员分立(系统管理员/安全保密管理员/安全审计员三权相互制约)。

访问控制 + 威慑溯源 + 审计留痕,三层叠起来才是完整方案。单层银弹不存在,做安全的都懂。

以上就是今天搬的砖。做OA、做文档管理、做内容平台的同行,欢迎评论区交流权限模型设计。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/huibotong2022/article/details/167690210

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--