美国国家标准与技术研究院(The National Institute Of Standards And Technology,NIST)标准RABC(Role-based policies Access Control)基于角色的访问控制模型由4个部件模型组合成,这4个部件模型分别是基本模型RBAC0(Core RABC)、角色分级模型RBAC1(Hierachal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RABC)。
RBAC0模型如下图:
(1)RBAC0定义了能构成一个RBAC控制系统最小的元素集合。在RBAC中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限、会话session是用户与激活角色之间的映射、RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。
(2)RBAC1引入角色间的继承关系,角色间的继承关系可以分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。
(3)RBAC2模型添加了责任分离关系。RBAC2的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限的关系一起决定了RBAC2模型中用户的访问许可。