RBAC权限系统分析、设计与实现.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? ? RBAC权限系统分析、设计与实现 ? ? 最近在整理SpringSecurity的知识,看到一篇不错的文章,讲述关于RBAC的知识。使用最普遍的权限管理模型正是RBAC(Role-Based Access Control)模型,文章也主要是介绍基于RBAC的权限管理系统,这篇文章从RBAC是什么、如何设计RBAC两部分来介绍。 我所负责的项目涉及到角色权限的问题全部是通过RBAC来实现的,以前只是出于熟练使用的层面,现在学习一下RBAC更深层次的理论知识。 一、RBAC是什么 1、RBAC模型概述 RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为What、How的问题,Who、What、How构成了访问权限三元组。 2、RBAC的组成 在RBAC模型里面,有3个基础组成部分,分别是:用户、角色和权限。 RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离(区别于ACL模型),极大地方便了权限的管理 下面在讲解之前,先介绍一些名词: User(用户):每个用户都有唯一的UID识别,并被授予不同的角色 Role(角色):不同角色具有不同的权限 Permission(权限):访问权限 用户-角色映射:用户和角色之间的映射关系 角色-权限映射:角色和权限之间的映射 它们之间的关系如下图所示: 例如下图,管理员和普通用户被授予不同的权限,普通用户只能去修改和查看个人信息,而不能创建创建用户和冻结用户,而管理员由于被授 予所有权限,所以可以做所有操作。 3、RBAC支持的安全原则 RBAC支持三个著名的安全原则:最小权限原则、责任分离原则和数据抽象原则 最小权限原则:RBAC可以将角色配置成其完成任务所需的最小权限集合 责任分离原则:可以通过调用相互独立互斥的角色来共同完成敏感的任务,例如要求一个计账员和财务管理员共同参与统一过账操作 数据抽象原则:可以通过权限的抽象来体现,例如财务操作用借款、存款等抽象权限,而不是使用典型的读、写、执行权限 4、RBAC的优缺点 (1)优点: 简化了用户和权限的关系 易扩展、易维护 (2)缺点: RBAC模型没有提供操作顺序的控制机制,这一缺陷使得RBAC模型很难适应哪些对操作次序有严格要求的系统 5、RBAC的4种模型 (1)RBAC0 RBAC0,是最简单、最原始的实现方式,也是其他RBAC模型的基础。 在该模型中,用户和角色之间可以是多对多的关系,即一个用户在不同场景下是可以有不同的角色,例如:项目经理也可能是组长也可能是架构师。同时每个角色都至少有一个权限。这种模型下,用户和权限被分离独立开来,使得权限的授权认证更加灵活。 (2)RBAC1 基于RBAC0模型,引入了角色间的继承关系,即角色上有了上下级的区别。 角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构,实现角色间的单继承。 这种模型适合于角色之间层次分明,可以给角色分组分层。 (3)RBAC2 RBAC2,基于RBAC0模型的基础上,进行了角色的访问控制。 RBAC2中的一个基本限制是互斥角色的限制,互斥角色是指各自权限可以互相制约的两个角色。对于这类角色一个用户在某一次活动中只能被分配其中的一个角色,不能同时获得两个角色的使用权。 该模型有以下几种约束: 互斥角色 :同一用户只能分配到一组互斥角色集合中至多一个角色,支持责任分离的原则。互斥角色是指各自权限互相制约的两个角色。对于这类角色一个用户在某一次活动中只能被分配其中的一个角色,不能同时获得两个角色的使用权。常举的例子:在审计活动中,一个角色不能同时被指派给会计角色和审计员角色。 基数约束 :一个角色被分配的用户数量受限;一个用户可拥有的角色数目受限;同样一个角色对应的访问权限数目也应受限,以控制高级权限在系统中的分配。例如公司的领导人有限的; 先决条件角色 :可以分配角色给用户仅当该用户已经是另一角色的成员;对应的可以分配访问权限给角色,仅当该角色已经拥有另一种访问权限。指要想获得较高的权限,要首先拥有低一级的权限。就像我们生活中,国家主席是从副主席中选举的一样。 运行时互斥 :例如,允许一个用户具有两个角色的成员资格,但在运行中不可同时激活这两个角色。 二、如何设计RBAC 这一节,我会介绍设计基于RBAC模型的权限系统的功能模块组成、流程以及数据库的设计。 1、RBAC的功能模块 2、RBAC执行流程 3、RBAC数据库设计 复杂一点的设计 ? -全文完-

文档评论(0)

科技之佳文库 + 关注
官方认证
内容提供者

科技赋能未来,创新改变生活!

版权声明书
用户编号:8131073104000017
认证主体重庆有云时代科技有限公司
IP属地浙江
统一社会信用代码/组织机构代码
9150010832176858X3

1亿VIP精品文档

相关文档