1.2.2 RBAC 适用性分析
在 RBAC 模型中,一个用户通过用户授权获得一个或者几个角色,但角色不
能被同时激活;一个角色可以被同时授予多个用户;每个角色有一个或多个节点,
一个节点也可以被赋予多个角色;每个节点有一个或者多个功能,一个功能可以
被同时挂在不同的节点上,而节点可以有子节点,子节点也可以再有子节点;一
个功能对应一个或多个页面;一个页面有一个或多个操作。这样每个用户登录时
就可以根据角色得到一棵功能树从而使用系统中的资源。
为更真实的描述现实, RBAC 模型还有许多的控制机制。如对 Web 页面多维
度和细粒度控制,对角色、功能、节点的静态限制和对角色的动态限制。对页面
的限制主要是限制用户在特定时间和特定地点所能看到的功能和所能进行的操
作。其他限制主要是在功能被赋予节点时、节点被赋予角色时和角色被赋予用户
时的限制。模型中有了这些限制才更完整、更真实地反应现实,从而使实际模型
细化的过程更加平滑,现实和计算机实现策略达到较好的融合。
页面是 Web 应用系统中最重要的元素,控制页面访问是整个系统安全的重要
条件。对页面的访问控制可以从时间和空间两个方面来进行,对页面功能和数据
的访问,可以通过用户登录后所带 session 中的信息进行控制。
时间约束分为一般时间约束和周期时间约束两种。一般时间约束是指从一个
时间点持续到另一时间点之间可以访问某个页面,例如,企业商务系统中的商品
招标页面,它在某一指定时间段内开放,对这种约束可以在用户访问网页的时候
判断访问时间是否在允许范围内。周期时间约束是指对那些功能和数据周期性开
放的页面进行访问控制。空间约束主要是对用户在不同地方(网段)登录所能看
到的页面以及页面能提供的信息进行控制。例如,管理部门内部事务所对应的页
面通常对用户所在的访问位置有较严的限制。一般系统的高层用户都有一个固定
的 IP 段,就可以对那些重要的页面设置允许访问的 IP 范围来达到对关键资源的
保护。对页面的空间约束可以分成分网段、分楼层、分房间、分 IP 地址等不同
层次的控制。
对页面功能和数据的访问需要知道用户的大概类型,主要包括管理员、部门
管理员、一般职工、游客(企业或单位以外的人员)等。用户登录后将用户的类
型保存到 session 中,在用户访问页面时就可以根据用户的不同类型,以及他们
对时间、空间等硬性约束的满足情况来显示相应的功能和数据。
通过了解 RBAC 模型的原理和 RBAC 模型中对访问控制的支持,我们可以看出,
RBAC 模型可以很好的应用于已有或将要开发的企业商务 Web 系统中。通过在系
统中使用 RBAC 模型,可以很好的解决如下的问题:
权限管理混乱的问题。通过在系统中增加角色这个概念,很好的解决了这个