北极星

搜索历史清空

  • 水处理
您的位置:电力综合正文

细粒度应用授权策略研究[2]-细粒度_模块分裂_角色树_角色森林_权限管理

2008-08-04 18:10来源:希赛关键词:安全管理收藏点赞

投稿

我要投稿

  假如上例中就甲、乙两类用户,期望的访问控制如上所述,那么最好的角色创建方法是为系统访问控制创建两个角色,第一个角色为role_a,如果要限制该角色只能读A和B,就只将private_ab_read模块的的权限赋予角色role_a;第二个角色为role_b,可以写数据域A和B,并且可以读写数据域C,可以将模块private_ab_write,private_c_readandwrite赋予角色role_b。然后将role_a赋予用户乙,可以同时将角色role_a和role_b赋予角色甲。

  角色定义是递归的,可以将模块赋予角色,也可以将角色赋予更高层次的角色。这样每个角色在角色模块表中的信息形成一个角色树[2],叶接点为模块名称,除叶接点外的所有接点都为角色。总个角色模块表中的数据是一个角色森林[2]。

  1.3用户维护与授权

  用户授权是权限设置的难点,在用户的管理上,需要对用户进行归类。通常的应用系统,用户的类型并不太多,而且具备普通权限的用户占总个用户的80以上。用户权限分类直接影响到模块的划分和角色的创建,因此应用系统开发初期,根据应用系统能够提供的功能,需要对访问本系统的用户归类,至少每种类型能够确定一个用户代表,方便考察权限授予和模块划分是否正确。当新增用户时,只需把本类用户中代表用户拥有的角色同样赋予新增用户既可让该新增用户拥有相同应用模块访问权限。

  当新增用户不在预定用户分类中的任何一类的时候,需要进行模块分裂和角色重建。模块分裂通常要涉及到原程序的改动,而角色的可以动态维护。如果原程序中模块划分足够细,就完全可以实现动态授权。

  2权限分裂与判定

  如新增用户丙,该用户只能对数据输入域A具备查看的权限,这时需要对模块private_ab_read分裂,分裂为private_a_read和private_b_read两个权限控制模块。可以为模块private_a_read和private_b_read分别创建角色role_a_read和role_b_read,并为这两个角色创建更高层次的角色private_ab_read。

  通过这样方式的角色分裂,以前测试的权限理论上不需要回归测试,只需要测试新模块的权限,简化了测试工作量,既可以满足角色分裂的需要,又可以保证系统的安全。[1][2][3]

投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。

安全管理查看更多>