who:身份只是开头,真正进规则的是属性
who 不只是一个用户名。它是一个 subject(principal),携带一组属性:role、dept、clearance(密级)、employed(是否在职)……RBAC 只读取其中一个——role;ABAC 让任意属性都能写进规则。
1 · subject 属性对决策的影响
动作固定为 update、资源固定为「营销文案 #42」(L1,owner=u-bob),此时决策的全部变数都落在 subject 的属性上。
注 · 把 subject 的 role 固定不动,只改 clearance 或 employed,决策照样逆转。这正是 ABAC 超出 RBAC 之处:两个 role 完全相同的人,因为其他属性不同,得到不同结论。RBAC 里这是做不到的——它只读取 role。
建议 · 留意 r-owner 这条规则:它比较的是 resource.owner === subject.id,把「人」和「物」用一条关系连起来(这份资源是不是他本人的)。选中 Bob 时它会亮,因为文案归 Bob。这条线索在 what:资源也有属性 一页继续展开,并在
ReBAC 一页长成完整的模型。