以任务所需为边界

Saltzer与Schroeder在1975年的保护原则中,把最小权限用于限制事故或错误的损害,并减少特权程序之间不必要的相互作用。某程序只需读取一份报告时,其任务本身不要求能改写整批记录或管理所有账户。

这里讨论的是可实际动用的权限,而不是程序作者预计会用到的分支。若执行身份仍可删除全部数据,承诺代码通常只读,并未形成同样的保护边界;出错代码或被劫持的执行流仍可能调用它已拥有的权限。

参考:[1]

获分配的角色不必全部同时启用

RBAC的会话机制允许用户仅启用已分配角色的一部分,把日常操作所用权限与偶尔管理任务分开。它说明收敛权限可以落实到一次会话,而不一定要给同一人永远叠加其所有工作身份的权限。

委托令牌也能按任务收敛。RFC 9700建议把访问令牌限制到必要的目标服务器、资源和动作;例如读取某资源与修改其他资源应由相应约束区分,而不能把一次同意解释为对所有服务的无限授权。

参考:[2] [3]

权限收敛需要随任务变化而维护

任务结束、人员调动或资源性质改变后,原先必要的权限可能不再必要。按属性和角色作决定可以帮助集中管理,但旧角色、属性或缓存不更新,仍会留下超出当前任务的权限。

最小权限因而要与可靠的执行和更新相配合。它降低可受影响的范围,却不独自证明输入正确、软件没有漏洞或所有授权规则都合理;边界是否成立,还须检查谁能授予、改变和撤回这些权利。

参考:[4]