基于角色的访问控制模型(RBAC),英文全称Role-Base Access Control,是20世纪90年代推出的一种访问控制模型,模型通过角色(Role)将用户(User)和访问许可(Permissions)联系起来,实现主题(用户)对客体(各种资源)的访问控制。
RBAC支持公认的安全原则:最小特权原则、职责分离原则和数据抽象原则。
RBAC最被公认的是RBAC96模型族,RBAC0-RBAC3。
RBAC0 :实现了RBAC的最低要求;
RBAC1 :在RBAC0 基础上添加角色的层级关系;
RBAC2:在RBAC0 基础上,对模型各个元素及它们之间的关系,添加了一些约束;
RBAC3 :统一了RBAC1与RBAC2,虽然两者之间存在一定的冲突。
下图说明了各模型之间的关系。
下面是RBAC3的关系图:
有图可见RBAC分为用户、角色、许可权、会话等元素:
1、一个用户可以对应多个角色,一个角色也可以分配给多个用户;
2、一个角色可以有多个许可权,一种许可权则只与一个角色对应;
3、用户可以发起会话,会话中可以激活多个角色来获取许可权;
4、PH是RBAC1 中添加的内容,角色等级责任和权力可以继承;
5、通过私有角色实现部分责任和权力的继承;
6、限制是RBAC2 中增加的内容,这些限制包括互斥的角色、角色对应用户的数量、先觉角色、用户在会话中激活的角色数、一个用户同时的会话数等;
7、RBAC2 可以表达RBAC1 的意义,但比较难于理解;
8、上图表示了完整的RBAC3 ,实现中注意RBAC2 和RBAC1 冲突的一些问题;
9、用户、角色、许可权全部由超级管理员创建与指派;
可以使用相同的模型构造RBAC的管理模型,也就是RBAC97模型族;
1、RBAC97的关系图和上面的一样,只是由AR(管理角色)替代了R(角色),AP(管理许可权)替代了P(许可权),APA(管理许可权指派)替代了PA(许可权指派);
2、AR与R没有交集,AP与P没有交集;
2、通常管理模型应选择较简单RBAC0 ;
RBAC的优点:
1、符合各类组织的安全要求,应该较为广泛;
2、利与现有计算机技术实现;
3、概念上比较贴近现实,易于理解;
RBAC的不足:
1、不提供信息流的访问控制机制;
2、没有提供基于顺序的访问控制机制;
3、一些动态的管理,需要扩展模型才能实现。
参考资料:
http://www.docin.com/p-12187119.html