- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
细粒度权限系统设计和实例
权限系统(1)--基本模式 在系统中发生的事情,抽象的说都是某个主体(subject)在某个资源(resource)上执行了某个操作(operation)。 subject --[operation]-- resource 所谓权限管理,就是在这条信息传递路径中加上一些限制性控制。 主体试图去做的 limited by 系统允许主体去做的 = 主体实际做的。 可以看到,权限控制基本对应于filter模式。subject试图去做的事情应该由业务逻辑决定,因而应该编码在业务系统中。 先考虑最粗粒度的控制策略,控制点加在subject处,即无论从事何种操作,针对何种资源,我们首先需要确认subject是受控的。只有通过认证的用户才能使用系统功能,这就是authentication。boolean isAllowed subject) 稍微复杂一些,控制可以施加在subject和operation的边界处(此时并不知道具体进行何种操作),称为模块访问控制,即只有某些用户才能访问特定模块。isAllowed(subject, operation set) 第三级控制直接施加???operation上,即操作访问控制。operation知道resource和subject(但它尚没有关于resource的细节知识),我们能够采取的权限机制是bool isAllowed(subject, operation, resource), 返回true允许操作,返回false则不允许操作。 最简单的情况下,subject与resource之间的访问控制关系是静态的,可以直接写成一个权限控制矩阵 for operationA: resourceA resourceB subjectA 1 0 subjectB 0 1 isAllowed(subjectA, resourceA)恒等于true 如果多个operation的权限控制都可以通过这种方式来表示,则多个权限控制矩阵可以叠加在一起 for operationA, operationB: resourceA resourceB subjectA 10 01 subjectB 01 11 当subject和resource的种类很多时,权限控制矩阵急剧膨胀,它的条目数是N*M。很显然,我们需要进行矩阵分解。这也是最基本的控制手段之一: 在系统中增加一个瓶颈,或者说寻找到隐含的结构。 subject_resource = subject_role * role_resource 这样系统权限配置条目的数量为 N*R + R*M, 如果R的数目远小于subject和resource,则实现简化。这称为RBAC(role based access control),它的一个额外好处是权限系统的部分描述可以独立于subject存在,即在系统中没有任何用户的时候,通过角色仍然可以表达部分权限信息。可以说角色是subject在权限系统中的代理(分解)。 有时候引入一个瓶颈还不过瘾,有人引入组的概念,与role串联, subject_resource = subject_group_role * role_resource 或着group与role并联, subject_resource = subject_group * group_resource 与role稍有不同,一般情况下group的业务含义更加明显,可能对应于组织结构等。将组织机构明确引入权限体系,有的时候比较方便,但对于权限系统自身的稳定性而言,未见得有什么太大的好处。并联模式有些多余,串联模式又过于复杂,细节调整困难,特别是多条控制路径造成的冲突情况。一般情况下,我不提倡将group引入权限控制中。 比操作控制更加深入的控制就是数据控制了,此时需要对于resource的比较全面的知识。虽然表面上,仍然是 boolean isAllowed(subject, operation, resource),但控制函数需要知道resource的细节。例如行级控制(row-level)或者列级控制(column-level)的实现。因为我们一般情况下不可能将每一个条目都建模为独立的resource,而只能是存在一个整体描述,例如所有密级为绝密的文档。在witrix平台中,数据控制主要通过数据源的filter来实现,因为查询条件(数据的定位条件)已经被对象化为Query类,所以我们可以在合适的地方自由的追加权限控制条件。 以上的讨论中,权限控制都是根据某些静态描述信息来进行的,但现实世界是多变的。最简单的,当subject从事不同业务时,对应于同一组资源,也可能对应的权限控制并不同(在witrix平台中,对应于IDataSource的模式切换)。更复杂一些,
您可能关注的文档
最近下载
- 2024年重庆涪陵公开招聘社区工作者考试试题答案解析.docx VIP
- (新课标新教材)新湘教版数学初中七年级上册1.2.3《绝对值》核心素养型说课稿.doc
- 本量利分析练习题含参考答案.docx VIP
- 广州市南沙区2023-2024学年八年级上学期期末数学易错题整理(含答案).doc VIP
- 《社会学概论》项目四 社会互动与社会角色.pptx
- 混凝土课程设计--连续梁设计.docx VIP
- 四年级高思奥数行程问题三1.pdf VIP
- Unlock2 Unit1 第一篇听力讲解及答案.pptx VIP
- 2023年青少年百科知识竞赛题库及答案(共390题).docx VIP
- 中国溶剂油项目投资计划书.docx
文档评论(0)