RBAC 2 同样建立在 RBAC 0 基础之上,但是增加了约束(Constraints)。约束是用于加强访问控制策略的规则或条件,可以限制用户、角色和权限的关联方式。

主要特点

  • 斥角色:某些角色不能同时赋予同一个用户。例如,审计员和财务员角色不能同时赋予同一个用户,以避免暗黑交易。
  • 先决条件:用户要获得某个角色,必须先拥有另一个角色。例如,公司研发人员要成为高级程序员,必须先成为中级程序员。
  • 基数约束:限制某个角色可以被赋予的用户数量。例如,某个项目的经理角色只能赋予一个用户,以确保项目的唯一责任人。

优点:

  • 加强安全性:通过约束规则,可以避免权限滥用和利益冲突。
  • 精细化管理:可以更精细地控制用户的角色分配和权限管理。

场景举例

在一个金融系统中,为了避免利益冲突,定义了互斥角色规则:审计员和财务员角色不能同时赋予同一个用户。这样可以确保审计员和财务员的职责分离,增强系统的安全性。