- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
权限访问控制管理
权限管理实际上是建立在权限控制体系上的具体功能的实现,因此有必要讨论使用哪一种权限控制模型。
基本概念
一、身份与主题
身份(Principal)描述的是用户以及和用户相关的机构属性,例如角色、群组、职位等等。
主题(Subject)是身份的集合,描述的是一个用户所具有的所有身份。
下图表示用户的身份:
如果对于某种资源的操作较多,可能会出现某些操作之间有包含关系,而某些操作之间没有包含关系的情况。例如上面对于数据的几种操作中,一般来说,编辑应该包含查看,而删除应该包含编辑等等,而编辑和移动之间就不一定有包含关系。
对于操作之间的包含关系,可以通过下面的树形结构来说明:
四、许可与权限
许可(Permission)描述的是对系统中资源的操作,“通常一个许可包含一个目标(‘由这个权限控制的操作将对谁执行?’)和一个操作(‘如果这个权限允许的话,对这个目标将执行什么操作?’)”。
许可 = 资源 + 操作。
权限,可以认为是对许可的一种更为常用的说法,在实际的程序设计中,权限往往被附加上了身份的描述。
权限 = [身份+]资源+ 操作。
五、允许权限与拒绝权限
允许权限,明确允许身份A能够对资源B进行C操作,例如允许小王对工程管理模块进行管理操作。
拒绝权限,明确拒绝身份A能够对资源B进行C操作,例如不允许小王对工程管理模块进行管理操作。
如果一个系统中没有明确允许身份A能够对资源B进行C操作,那么并不代表系统就拒绝了身份A能够对资源B的C操作。
控制功能
以资源域为中心统一管理、配置资源及相关信息
1) 资源域是系统中某类或某几类资源的集合。
2) 提供资源域管理界面,通过该界面可以建立新的资源域,并向域中加入某类或多类资源,还可以配置资源的权限描述类。
相当灵活的授权方式
1) 以身份为中心授权:以身份为中心设置对哪些资源能够进行哪些访问等等,入口分散在人员、群组、组织机构的管理中。
2) 以资源为中心授权:以资源为中心,授予哪些身份对该资源可以进行哪些访问等等,该方式又分为两种:
(1) 资源集中授权:权限控制中心将各种资源域的资源以一系列树的方式集中在一起显示并进行授权。
(2) 资源分散授权:任意一种资源,只要将资源标识(ID)、资源对象类(class全名)传给权限控制体系,则控制中心会弹出通用的授权界面,设置哪些身份对该资源可以进行哪些访问等等。
资源的权限描述可以通过可插拔的权限描述类来实现
1) 权限描述类,主要负责描述该资源对外提供哪些操作以及其他一些信息等等。
2) 在我们的体系中,每种资源都可以使用自己编写的权限描述类,也可以更换权限描述类。
对于某种资源可能的操作,可以定义这些操作之间的包含关系。
支持树形资源的授权,并支持权限的继承与传播。
权限控制中心,在计算权限结果时,如果最终拒绝该请求,则会给出为什么不允许访问:是明确拒绝,还是因为不能计算出是否被拒绝而出于安全考虑才不允许访问的?如果是后者,对于关联资源的权限判断将很有帮助。
尊重业务逻辑判断,支持业务对访问请求的优先判断
在系统资源服务接口中定义了CheckPermission方法,做为业务自身实现该接口操作后,在对某个请求进行访问控制时,我们现将控制权交给实现了该接口的业务自身,并传给业务足够的请求信息,业务自身对该请求进行业务逻辑判断后,可能会形成三种结果:
1) 明确拒绝该请求,如果业务自身明确拒绝该请求,则权限控制体系将直接拒绝该请求,不再交给权限体系自身进行判断。
2) 明确允许该请求 ,如果业务自身明确允许该请求,则权限控制体系将直接允许该请求,不再交给权限体系自身进行判断。
3) 不确定是否允许访问,如果业务自身不知道是否允许或拒绝该请求,则权限控制体系会将控制权转交给权限判断中心进行进一步判断。
存储策略
权限的动作存储可用位来表示,把所有可能的权限按一定的顺序排列,如添加、浏览、修改、删除...,用户的权限值为固定长度的字符串,如100010100001....01,从右起每一位对应一种操作权限,如果有这种权限,则此位的值为1,反之,则为0。当然,在数据库中,实际是存的2的n次方的计算结果数字,如0、1、2、4、8…,MS SQL数据库最大的数字是2的64次方,且保证尽可能多地存放权限,所以我们给权限进行了分组,每个64位的权限为一组,为了方便计算,组也是按2的n次方存放。同一组的权限位可按二进制进行与、或操作,只有该位为1表示有权限,否则没有权限。
举例如下:
权限排列表:添加、浏览、修改、删除,用户A有添加和浏览的的权限,则其权限值为0011,用户B有浏览和修改的权限则其权限值为0110,用户C有浏览和删除的权限则其权限值为1010,这样设计的好处为:当权限表中增加别的权
文档评论(0)