配置一个人的权限

模型起草的单据走同一套权限,个人授权只追加、可加可减

一个人在系统里能做什么,由四层能力叠加而成:职位能力集、特殊身份、任命、个人授权。模型起草的单据走同一套权限、审批链与规则,没有为模型另开的通道。需要限时、按需授权的场景,这里的机制不够,要另配。

判定怎样查表、拒绝为什么先于允许,见谁能做什么。这里只讲能力怎样配出来。

四层能力

四层能力叠加与剥离签核能力

图里蓝色的剥离约束横跨四层,说明它管的是四条路径,不只是最后一层。

层来源怎样叠加
职位能力集每个职位带一组能力起点
特殊身份职位之外带来的能力在上一层的结果上加
任命职位之外的任命,如分支负责人任命在上一层的结果上加
个人授权对某个人单独加一项或减一项最后叠加,可加可减

系统在会话开始时把这份能力算好并冻结,之后一次会话内答案不变。

一个示例:某个职位带 customer.read 与 sign.finance,这个职位不进签核位;经办人另给此人加了 report.read,还想加 approval.final_exempt。

动作结果
起点:职位能力集customer.read、sign.finance
个人授权加 report.read加入
个人授权加 approval.final_exempt不采用,个人授权不能授予免审终局
按「这个职位不进签核位」剥离签核能力sign.finance 不进入结果
冻结为会话快照customer.read、report.read,附权限集版本号

能力名与职位均为示例,企业的能力清单在设计阶段确定。装配结果是一份冻结的快照,会话期间不再变;前端读这份清单显示入口,服务端仍按策略表判定。

要说清一个人为什么有某项能力,逐层查四层来源即可。

个人授权

一次个人授权是新增的一行,不在旧行上改值。每次加或减都留痕:授权人、时间、变更前值、变更后值、理由。

只追加的好处是:某一时刻这个人有过哪些个人授权,从行本身就能还原,有人问「这个人上个月为什么能看报表」时,查得到当时的状态。

个人授权与职位能力集是两回事:新的授权只影响这一个人,不改职位能力集。

撤销个人授权

撤销一条个人授权,系统只收回这条授权自己加上的那一项。职位、身份、任命带来的同一项能力不变。所以撤销之后,此人可能仍然有这项能力,因为别的层也给了它。

撤销写成什么,由一支纯函数决定:写「删加项」,还是「写减项」。它的决策表与后端实现逐行对拍。纯函数指同样的输入得到同样的输出,不读外部状态。

核对撤权操作时,可以要这张决策表,对照几个具体情形看结果:这项能力只来自个人授权,还是另有来源。

签核能力的四条路径

两条组合不可授予:

  • 个人授权不能授予免审终局,即单据不经审批链直接通过的能力。
  • 某些职位不进签核位。

第二条的难处在路径多。签核能力可以从职位、特殊身份、任命、个人授权四条路径进来。

SZV 对四条路径一律剥离,并用代码里的常量白名单加代码扫描守住这条约束。单在个人授权入口设防,拦不住另外三条路径。

这类约束属于职责分离,对应 NIST SP 800-53 的 AC-5 控制项。它管的是一个人身上的能力组合,单看哪一条授权都看不出问题。

在岗状态与代签

账号有在岗状态:在岗、请假、出差。可以填预计回岗时间,到点自动回到在岗。某个签核位的持有人全部请假、出差或停用,会触发审批里该位的代签开放,规则见审批流转。

谁在岗、谁能代签,由账号状态与兜底表(按职位排好的代签顺序)算出,不靠临时指派。

缺失时按拒绝处理

缺什么结果
会话里缺能力字段当作空能力,什么动作都不准
缺可见分支当作空集,什么数据都看不到

配置漏一项的后果是有人做不了事,做不了事的人会来报告,多放出去的权限往往没人发现。

限制与不适用

  • 权限撤掉之后,已登录的会话何时失效要另外约定,因为能力在会话开始时冻结。
  • 限时授权与周期性复核是权限管理的常见做法,这两项按企业要求在合同中约定。
  • 需要限时、按需授权的场景,要另配机制。

与常见做法对照

问题SZV常见做法
撤权何时生效能力在会话开始时冻结,快照附权限集版本号;撤权的生效时刻按企业要求在合同中约定缩短时差的通行做法是短期凭证到期重算,或把撤销事件推给持有会话的一方:RFC 7009 的令牌撤销,OpenID CAEP 的会话撤销事件
授权与内容的先后一致不涉及Zanzibar 论文要求授权判定遵守用户操作的因果顺序,这是权限变更与内容变更的一致性,不是会话撤销
授权的有效期个人授权的有效期,按企业要求在合同中约定限时、按需授权,到期自动收回;NIST SP 800-53 的 AC-2 控制项含临时账户自动失效
权限复核复核周期按企业要求在合同中约定定期复核账户与授权,AC-2 同样要求
职责分离四条路径一律剥离签核能力控制项 AC-5 要求拆分关键职责

验收时可以问的问题

  • 请对照撤销的决策表,演示同一项能力先加后减与先减后加,结果各是什么。
  • 请演示:职位自带的能力被个人授权减掉,之后撤销这条减项,能力是否回来。

相关页

这页有帮助吗谢谢,我们会据此改进这一页。

需要帮助?联系我们

想先知道我们怎么想?关于 SZV

联系我们

企业人员规模(人)

试用工作台