what:资源也有属性 ——「自己的」和「密级」
what 也不只是一个资源 id。resource 同样带着属性:owner (归谁)、
classification (密级)、status……授权里两条最重要的规则都源自这里:
owner === subject.id 就是「能改自己的」(基于关系);
clearance ≥ classification 就是「密级足够才可见」。将 who 固定为 Bob (editor, L1),
只改动资源属性和动作,观察这两条规则随 what 亮灭。
who (固定)
✍️ Bob
role=editor · clearance=L1 内部 · id=u-bob
when/where (固定)
工作日 10:00 · 公司 · 托管
● action —— 想做什么
● 资源属性 (what)
owner
classification
policy 规则 (亮 = 命中;高亮 = 决定性规则)
决策 (deny-overrides)
r-owner 比较的是 resource.owner === subject.id ——
它把这一份资源和这一个人关联起来,而不是给整类资源发放一个静态权限。这种「按对象实例、依人物关系」
的判定,正是 ReBAC (Relationship-Based,Google Zanzibar / GitHub 仓库协作所采用的范式) 的核心。
将 owner 设为本人、动作设为 read/update/delete,即可观察其命中。
update —— r-owner 放行;
但只要将 classification 提升至 L2 / L3(超过 Bob 的 L1),r-clearance 便会命中,
在 deny-overrides 下一票否决。换言之:「属于你」并不能凌驾于「你密级不足」之上。
这种「多条规则同时命中、孰胜孰负」的问题,正是 05-decide 页组合算法所要解决的。