rbac 角色权限

 
  •  

    信息(后台)管理系统是一个复杂的人机交互系统,其中的每一个环节都可能受到安全威胁,构建强健的权限管理系统,保证管理系统安全是非常重要的,权限管理系统是信息(后台)管理系统重用性最高的模块之一。任何多用户系统都不可避免的涉及此需求,都需要解决访问控制,数据保密,数据安全性等问题。

    权限管理可以控件可以访问那些资源,可以对那些功能进行操作等。

             对于一个大型的系统来说,用一套通用性强,维护性强的模块是致关重要的。现在好多模式的权限设计,这样对于管理员系统维护来说大为不便。不过在长期的实践中,应用最为广泛权限模块,是RBAC(Role-Based policies Access Control)模型。下面具体描述此系统设计原理以及它的访问和控件。

     

    RBAC权限具有很好的越权控制管理能力。而且他的扩展能力较强,可以在不同层次进行功能的扩展,适用于任何简单复杂的信息管理系统。这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)

     

     RBAC0定义了能构成一个RBAC控制系统的最小的元素集合。在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、操作operations(OPS)、许可权permissions(PRMS)、目标 objects(OBS)五个基本数据元素,权限被赋予角色,而不是用 户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控 制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。

    b. RBAC1引入角色间的继承关系,角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。

    c. RBAC2模型中添加了责任分离关系。RBAC2的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制 性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。

    d. RBAC3包含了RBAC1和RBAC2,既提供了角色间的继承关系,又提供了责任分离关系。下图是RBAC0的角色权限图例。

     

    在这次的工作当中,我所采用的是RBAC1角色控制原理。角色这个关键点,用户例属于那个角色的子角色,进而再分配权限。复杂度加大。如下图:

     

     

         

    数据库架构则由此产生如下:

     

     

    当看了这些图的时候,就会明白角色是如何设计的。 由于角色涉及到每一个功能权限控制,所以它的工作量相当大。基本上在架构出来之后,都是体力活。它需要在每一个控件上加入控制代码,来访问越权行为。当面对各级树形结构的权限分配时,权限校验也只是重复着以前的判断逻辑。

    希望如上之解能对您的工作起到点睛的作用。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值