关于RBAC
基于角色的访问控制(Role-Based Access Control , RBAC)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。
RBAC支持三个著名的安全原则:最小权限原则,责任分离原则 和 数据抽象原则。
- (1)最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集。
- (2)责任分离原则可以通过调用相互独立互斥的角色来共同完成敏感的任务而体现,比如要求一个计帐员和财务管理员共参与同一过帐。
- (3)数据抽象可以通过权限的抽象来体现,如财务操作用借款、存款等抽象权限,而不用操作系统提供的典型的读、写、执行权限。然而这些原则必须通过RBAC各部件的详细配置才能得以体现。
RBAC有许多部件(BUCU),这使得RBAC的管理多面化。尤其是,我们要分割这些问题来讨论:用户与角色的指派;角色与权限的指派;为定义角色的继承进行的角色与角色的指派。这些活动都要求把用户和权限联系起来。然而在很多情况下它们最好由不同的管理员或管理角色来做。对角色指派权限是典型的应用管理者的职责。银行应用中,把借款、存款操作权限指派给出纳角色,把批准贷款操作权限指派给经理角色。而将具体人员指派给相应的出纳角色和管理者角色是人事管理的范畴。角色与角色的指派包含用户与角色的指派、角色与权限的指派的一些特点。更一般来说,角色与角色的关系体现了更广泛的策略。
国内专利情况
专利技术
国内有关RBAC的相关专利比较多,这里举出一两个例子进行说明。
一种基于SSH网站实现RBAC访问权限控制的方法
申请人:北京经开投资开发股份有限公司
本发明公开了一种基于SSH 网站实现RBAC 访问权限控制的方法,包括以下步骤:
- 用户对页面进行访问请求,判断Session 中的用户名变量是否为空,若为空,则跳转到登录页面让用户登录,否则将用户信息保存在所述Session 中;
- 用户访问数据库,并将登录成功的用户信息保存在所述session 中;
- ORM 模块访问所述数据库,从所述数据库得到访问页面相应的权限信息;
- 触发AOP 拦截器,所述AOP 拦截器从所述Session 中得到用户的权限信息;
- 所述AOP 拦截器判断用户的权限信息,若包含访问页面相应的权限信息,则用户访问成功,否则访问失败。
本发明的有益效果为:逻辑清晰、各个逻辑之间的耦合度低、程序的可重用性高、开发效率高。
所述数据库包括:
- 用户表,包括用户编码及用户名,用于储存用户信息;
- 角色表,包括角色编码及角色名,用于储存角色信息;
- 权限表,包括权限编码、权限名和URL 地址,用于储存具体的权限信息;
- 用户角色表,包括用户编码和角色编码,实现用户和角色的多对多映射;
- 角色权限表:包括角色编码和权限编码,实现角色和权限的多对多映射;
所述角色表通过所述用户角色表与所述用户表进行多对多的关联;
所述角色表通过所述角色权限表与所述权限表进行多对多关联。
所述的一种基于SSH 网站实现RBAC 访问权限控制的方法,其特征在于,所述角色表中加入父类角色编码用以适应角色的分级。
所述的一种基于SSH 网站实现RBAC 访问权限控制的方法,其特征在于,所述用户信息、所述角色信息和所述权限信息均以变量名的形式储存在session 中。
一种基于RBAC的权限管理系统
申请人:桂林长海科技有限责任公司
本发明涉及权限管理技术领域,具体是一种基于RBAC 的权限管理系统,包括用户单元、会话单元、角色单元、数据权限单元和功能权限单元。
- 所述用户单元分别与会话单元和角色单元连接,向会话单元传递用户的会话数据,接收角色单元发送的角色配置,用户单元用于登陆权限管理装置,进行身份资料记录;
- 所述会话单元与角色单元连接,接收用户单元的会话数据,并向角色单元发送激活角色数据,用于通过会话进程与用户交互,激活用户角色;
- 所述角色单元分别与数据权限单元、功能权限单元连接,并分别向数据权限单元、功能权限单元发送访问请求,用于根据会话结果分配用户角色,以及确定的用户身份与所述用户所属角色之间的对应关系;
- 所述数据权限单元,用于根据用户角色对用户发送的访问请求识别,分配数据权限,并对系统的具体数据范围的操作权限进行控制;
- 所述功能权限单元,用于根据用户角色对用户发送的访问请求识别,向用户分配功能权限,对操作各个业务对应的应用模块的访问和操作权限进行控制。
相对现有技术,本发明实现了用户与访问权限的逻辑分离,功能和数据的权限分离,使权限的配置和管理更加简单,降低用户的使用难度。
一种基于组织的RBAC访问控制模型
申请人:山东高速信息工程有限公司
一种基于组织的RBAC 访问控制模型,包括用户、组织、角色、对象、操作、会话和约束,引入了组织的概念,组织是模型的核心与基础元素,所有的对象与角色都隶属于某一个组织,都具有一个唯一的属主;
一个组织可以拥有多个用户,拥有多个角色,拥有多个对象,组织具有层次关系,组织间可以通过授权将一个组织的角色赋给另外一个组织使用。
本发明的有益效果是:能够施加更加严格的安全策略,满足了灵活而复杂的系统授权需求,有效的解决了分级授权问题与复杂系统中繁多对象组织管理的问题,能够更方面的用以管理和组织对象,通过引入动态对象,增强了其适应性。
所述的基于组织的RBAC 访问控制模型,其特征在于:将对象进行分类处理,分为静态对象和动态对象,静态对象是事先确定好的对象,动态对象是在运行中才能确定的对象,对象具有哪些操作事前不确定,只有在授权的过程中才能确定。
所述的基于组织的RBAC 访问控制模型,其特征在于:引入了更多的约束:
- 1)SC1 约束,对应RBAC 参考模型中UA 的SSD,包括最小权限约束和静态职责分离约束;
- 2)SC2 约束,对应RBAC 参考模型中角色继承时的SSD,包括最小权限约束和静态职责分离约束,在角色继承过程中,一个角色不能同时继承具有分配互斥的两个角色;
- 3)SC3 :角色的使用范围约束,约束角色在整体的组织中的适用范围,其取值包括本级,本级及直属组织,本级及下级组织(子孙组织),不限制;
- 4)SC4 约束,对应RBAC 标准中PA 的SSD,在本模型中特化为“能够建立关系的角色和对象必须隶属于同一个组织”;
- 5)DC1 约束,对应RBAC 规范中Session 建立时的DSD,包括最小权限约束和静态职责分离约束;
- 6)DC2 :角色在组织间共享策略约束,可能的策略包括向上共享,同父下的同级共享。