RBAC的大体思想Word格式文档下载.docx

上传人:b****1 文档编号:1508848 上传时间:2023-04-30 格式:DOCX 页数:20 大小:326.50KB
下载 相关 举报
RBAC的大体思想Word格式文档下载.docx_第1页
第1页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第2页
第2页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第3页
第3页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第4页
第4页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第5页
第5页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第6页
第6页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第7页
第7页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第8页
第8页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第9页
第9页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第10页
第10页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第11页
第11页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第12页
第12页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第13页
第13页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第14页
第14页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第15页
第15页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第16页
第16页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第17页
第17页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第18页
第18页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第19页
第19页 / 共20页
RBAC的大体思想Word格式文档下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

RBAC的大体思想Word格式文档下载.docx

《RBAC的大体思想Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《RBAC的大体思想Word格式文档下载.docx(20页珍藏版)》请在冰点文库上搜索。

RBAC的大体思想Word格式文档下载.docx

,0);

insertintoTfunctionvalues(1,\'

商品信息更新\'

updategoods\'

insertintoTfunctionvalues(2,\'

商品信息删除\'

deletegoods\'

insertintoTfunctionvalues(3,\'

商品定价信息查询\'

selectgoodsprice\'

insertintoTfunctionvalues(4,\'

商品定价信息更新\'

updategoodsprice\'

(3)角色表

角色表的设计关键在于角色值的概念,它是一个由0和1组成的类似二进制数的字符串。

而功能表中的funcNo(功能编号)字段表示该功能在角色表的roleValue(角色值)字段中的位置,若是该位置对应的数值是0,表示该角色无此权限,若是值为1,那么表示该角色拥有此权限。

如角色一般会员的角色值为100100…00(共100位),如上所示,商品信息查询的功能编号为0,角色值100100…00的第0位为1,因此该一般会员角色拥有商品信息查询的功能;

相反,该角色值的第1位为0,而功能编号为1的功能为商品信息更新,因此该一般会员角色没有商品信息更新的权限。

它们的关系可由图2来表示。

二、角色的添加

有了上面几个表,角色页面的功能模块和其对应的功能都能够从功能模块表和功能表中读出,如图3所示。

在将新角色一般会员插入数据库时,先将角色值的所有位都置为0,然后利用.NETFramework类库中的Replace函数将角色值中的打上勾的功能相应的功能编号位的值改成1。

例如,新添加一个角色名为一般会员的角色,它拥有的功能为商品信息查询(功能编号0)和商品定价信息查询(功能编号3)两项,那么角色值应为1001000……00(100位),即角色值中第0位和第3位的值为1,其余为0。

3、利用用户控件实现访问权限

在概念好用户控件.ascx文件()及.(,cs)文件时,接下去只要在.aspx文件中注册和声明它就能够够了。

(1)注册

<%@RegisterTagPrefix="

Acme"

TagName="

Head"

Src="

../UserControl/"

%>

(2)声明

通过实践,在.aspx文件中声明.ascx文件可分为几种情形:

  第一种情形:

<Acme:

Headrunat="

server"

/>

  第二种情形:

flag=0funcname1=selectgoodsfuncname2=updategoods/>

  第三种情形:

Headrunat="

flag=1funcname1=selectgoodsfuncname2=updategoods/>

字段flag是用来操纵如何进行权限检查的标志,funcname指功能表中的功能英文名。

若是flag为空,那么不执行权限检查(第一种情形);

不然若是flag=="

0"

,那么表示同时具有selectgoods(商品信息查询)和updategoods(商品信息更新)这两种权限的角色所对应的用户才有权利查看该页(第二种情形);

不然,若是flag=="

1"

,那么以为,具有selectgoods(商品信息查询)或updategoods(商品信息更新)这两种权限中任意一种权限的用户就有权利查看该页(第三种情形)。

  上面进行权限检查的进程全数由用户控件来实现,其全数方式都封装在.文件中,其中最要紧的一个方式是检查某一角色是不是拥有某一确信权限的checkAuth(stringroleId,stringfuncEName)方式。

那个方式的思想如图4所示。

图4中roleValue(角色值)的第0位(selectgoods的功能编号)值为1,表示该角色拥有selectgoods(商品信息查询)的权限。

如此,咱们把对权限检查的所有逻辑都封装在了用户控件中,因此,对WEB窗体页.aspx文件而言,只需在导入.ascx文件时确信誉户在访问该页面时所应拥有的权限,而不需对进行任何改动。

由上所述,能够很清楚地看出,只要在用户控件中对用户权限进行操纵,再把它包括在.aspx文件中(这件事作者本来确实是要做的),那么在编程的时候就没必要考虑复杂的权限问题了。

-------------------------------------------------------------------------------------------------------------------------------

角色访问操纵(RBAC)引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个操作,即Operation+Resource)。

Role作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role而不是直接给User或Group。

Privilege是权限颗粒,由Operation和Resource组成,表示对Resource的一个Operation。

例如,关于新闻的删除操作。

Role-Privilege是many-to-many的关系,这确实是权限的核心。

基于角色的访问操纵方式(RBAC)的显著的两大特点是:

1.由于角色/权限之间的转变比角色/用户关系之间的转变相对要慢得多,减小了授权治理的复杂性,降低治理开销。

2.灵活地支持企业的平安策略,并对企业的转变有专门大的伸缩性。

RBAC大体概念:

RBAC以为权限授权事实上是Who、What、How的问题。

在RBAC模型中,who、what、how组成了访问权限三元组,也确实是“Who对What(Which)进行How的操作”。

Who:

权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)

What:

权限针对的对象或资源(Resource、Class)。

How:

具体的权限(Privilege,正向授权与负向授权)。

Operator:

操作。

说明对What的How操作。

也确实是Privilege+Resource

Role:

角色,必然数量的权限的集合。

权限分派的单位与载体,目的是隔离User与Privilege的逻辑关系.

Group:

用户组,权限分派的单位与载体。

权限不考虑分派给特定的用户而给组。

组能够包括组(以实现权限的继承),也能够包括用户,组内用户继承组的权限。

User与Group是多对多的关系。

Group能够层次化,以知足不同层级权限操纵的要求。

RBAC的关注点在于Role和User,Permission的关系。

称为Userassignment(UA)和Permissionassignment(PA).关系的左右两边都是Many-to-Many关系。

确实是user能够有多个role,role能够包括多个user。

凡是用过RDBMS都明白,n:

m的关系需要一个中间表来保留两个表的关系。

这UA和PA就相当于中间表。

事实上,整个RBAC都是基于关系模型。

Session在RBAC中是比较隐晦的一个元素。

标准上说:

每一个Session是一个映射,一个用户到多个role的映射。

当一个用户激活他所有角色的一个子集的时候,成立一个session。

每一个Session和单个的user关联,而且每一个User能够关联到一或多个Session.

在RBAC系统中,User事实上是在扮演角色(Role),能够用Actor来取代User,那个方式来自于BusinessModelingWithUML一书Actor-Role模式。

考虑到多人能够有相同权限,RBAC引入了Group的概念。

Group一样也看做是Actor。

而User的概念就具象到一个人。

那个地址的Group和GBAC(Group-BasedAccessControl)中的Group(组)不同。

GBAC多用于操作系统中。

其中的Group直接和权限相关联,事实上RBAC也借鉴了一些GBAC的概念。

Group和User都和组织机构有关,但不是组织机构。

二者在概念上是不同的。

组织机构是物理存在的公司结构的抽象模型,包括部门,人,职位等等,而权限模型是对抽象概念描述。

组织结构一样用Martinfowler的Party或责任模式来建模。

Party模式中的Person和User的关系,是每一个Person能够对应到一个User,但可能不是所有的User都有对应的Person。

Party中的部门Department或组织Organization,都能够对应到Group。

反之Group未必对应一个实际的机构。

例如,能够有副领导那个Group,这是多人有相同职责。

引入Group那个概念,除用来解决多人相同角色问题外,还用以解决组织机构的另一种授权问题:

例如,A部门的新闻我希望所有的A部门的人都能看。

有了如此一个A部门对应的Group,就可直接授权给那个Group。

-------------------------------------------------------------------------------------------------------

简单点的明白得:

在任何系统中,权限设计是最基础的东西,本文给出一个基于角色的权限设计的循序渐进的设计方案。

  在权限系统中,功能(权限)是最小的单位,比如起草新闻、编辑新闻、审核新闻、删除新闻等,而角色是一类功能的集合,比如新闻编辑那个角色,他可能有起草新闻、编辑新闻等功能集合,而责任编辑他可能就有更多的权限,比如除新闻编辑的功能,还有审核新闻、删除新闻等功能,给张三给予新闻编辑的角色(其实我更情愿说把张三加入到新闻编辑那个角色中去),张三就能够够起草新闻、编辑新闻了,给李四给予责任编辑的角色,李四就能够够起草新闻、编辑新闻、审核新闻、删除新闻了。

  咱们来模拟一下数据:

  用户信息表:

UserID

UserName

U1

张三

U2

李四

  角色表:

RoleID

RoleName

R1

新闻编辑

R2

责任编辑

  角色用户表:

  功能表:

FunctionID

FunctionName

F1

起草新闻

F2

编辑新闻

F3

审核新闻

F4

删除新闻

  角色功能表:

  咱们来看看如何判定一个用户具有某个功能权限:

  第一在用户张三登录的时候,获取张三的全数功能列表:

SelectFunctionIDFrom角色功能表WhereRoleIDIn(SelectRoleIDFrom用户角色表WhereUserID=’U1’)

  如此就能够够取得张三的全数功能列表Functions,在起草新闻的页面咱们就能够够做如下判定:

('

F1’);

1’

1’30”小授权治理的复杂性,降低治理开销;

 

NIST(TheNationalInstituteofStandardsandTechnology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(CoreRBAC)、角色分级模型RBAC1(HierarchalRBAC)、角色限制模型RBAC2(ConstraintRBAC)和统一模型RBAC3(CombinesRBAC)[1]。

RBAC0模型如图1所示。

a.RBAC0概念了能组成一个RBAC操纵系统的最小的元素集合。

在RBAC当中,包括用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个大体数据元素,权限被给予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包括的权限。

会话sessions是用户与激活的角色集合之间的映射。

RBAC0与传统访问操纵的不同在于增加一层间接性带来了灵活性,RBAC一、RBAC二、RBAC3都是前后在RBAC0上的扩展。

b.RBAC1引入角色间的继承关系,角色间的继承关系可分为一样继承关系和受限继承关系。

一样继承关系仅要求角色继承关系是一个绝对偏序关系,许诺角色间的多继承。

而受限继承关系那么进一步要求角色继承关系是一个树结构。

c.RBAC2模型中添加了责任分离关系。

RBAC2的约束规定了权限被给予角色时,或角色被给予用户时,和当用户在某一时刻激活一个角色时所应遵循的强制性规那么。

责任分离包括静态责任分离和动态责任分离。

约束与用户-角色-权限关系一路决定了RBAC2模型顶用户的访问许可。

d.RBAC3包括了RBAC1和RBAC2,既提供了角色间的继承关系,又提供了责任分离关系。

2核心对象模型设计

依照RBAC模型的权限设计思想,成立权限治理系统的核心对象模型.对象模型中包括的大体元素要紧有:

用户(Users)、用户组(Group)、角色(Role)、目标(Objects)、访问模式(AccessMode)、操作(Operator)。

要紧的关系有:

分派角色权限PA(PermissionAssignment)、分派用户角色UA(UsersAssignmen描述如下:

a.操纵对象:

是系统所要爱惜的资源(Resource),能够被访问的对象。

资源的概念需要注意以下两个问题:

1.资源具有层次关系和包含关系。

例如,网页是资源,网页上的按钮、文本框等对象也是资源,是网页节点的子节点,如可以访问按钮,则必须能够访问页面。

2.这里提及的资源概念是指资源的类别(ResourceClass),不是某个特定资源的实例(ResourceInstance)。

资源的类别和资源的实例的区分,以及资源的粒度的细分,有利于确定权限管理系统和应用系统之间的管理边界,权限管理系统需要对于资源的类别进行权限管理,而应用系统需要对特定资源的实例进行权限管理。

两者的区分主要是基于以下两点考虑:

一方面,资源实例的权限常具有资源的相关性。

即根据资源实例和访问资源的主体之间的关联关系,才可能进行资源的实例权限判断。

例如,在管理信息系统中,需要按照营业区域划分不同部门的客户,A区和B区都具有修改客户资料这一受控的资源,这里“客户档案资料”是属于资源的类别的范畴。

如果规定A区只能修改A区管理的客户资料,就必须要区分出资料的归属,这里的资源是属于资源实例的范畴。

客户档案(资源)本身应该有其使用者的信息(客户资料可能就含有营业区域这一属性),才能区分特定资源的实例操作,可以修改属于自己管辖的信息内容。

另一方面,资源的实例权限常具有相当大的业务逻辑相关性。

对不同的业务逻辑,常常意味着完全不同的权限判定原则和策略。

b.权限:

对受保护的资源操作的访问许可(AccessPermission),是绑定在特定的资源实例上的。

对应地,访问策略(AccessStrategy)和资源类别相关,不同的资源类别可能采用不同的访问模式(AccessMode)。

例如,页面具有能打开、不能打开的访问模式,按钮具有可用、不可用的访问模式,文本编辑框具有可编辑、不可编辑的访问模式。

同一资源的访问策略可能存在排斥和包含关系。

例如,某个数据集的可修改访问模式就包含了可查询访问模式。

c.用户:

是权限的拥有者或主体。

用户和权限实现分离,通过授权管理进行绑定。

d.用户组:

一组用户的集合。

在业务逻辑的判断中,可以实现基于个人身份或组的身份进行判断。

系统弱化了用户组的概念,主要实现用户(个人的身份)的方式。

e.角色:

权限分配的单位与载体。

角色通过继承关系支持分级的权限实现。

例如,科长角色同时具有科长角色、科内不同业务人员角色。

f.操作:

完成资源的类别和访问策略之间的绑定。

g.分配角色权限PA:

实现操作和角色之间的关联关系映射。

h.分配用户角色UA:

实现用户和角色之间的关联关系映射。

该对象模型最终将访问操纵模型转化为访问矩阵形式。

访问矩阵中的行对应于用户,列对应于操作,每一个矩阵元素规定了相应的角色,对应于相应的目标被准予的访问许可、实实施为。

按访问矩阵中的行看,是访问能力表CL(AccessCapabilities)的内容;

按访问矩阵中的列看,是访问操纵表ACL(AccessControlLists)的内容。

数据模型图如下:

基于RBAC的权限设计模型:

RBAC介绍

RBAC模型作为目前最为普遍同意的权限模型。

NIST(TheNationalInstituteofStandardsandTechnology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型别离是大体模型RBAC0(CoreRBAC)、角色分级模型RBAC1(HierarchalRBAC)、角色限制模型RBAC2(ConstraintRBAC)和统一模型RBAC3(CombinesRBAC)[1]。

图表1RBAC0模型

● 

RBAC0概念了能组成一个RBAC操纵系统的最小的元素集合

RBAC1引入角色间的继承关系

角色间的继承关系可分为一样继承关系和受限继承关系。

RBAC2模型中添加了责任分离关系

RBAC2的约束规定了权限被给予角色时,或角色被给予用户时,和当用户在某一时刻激活一个角色时所应遵循的强制性规那么。

RBAC3包括了RBAC1和RBAC2

既提供了角色间的继承关系,又提供了责任分离关系。

成立角色概念表。

定出当前系统中角色。

因为有继承的问题,因此角色表现出的是一个树形结构。

权限设计:

配置资源和资源的操作:

那个地址资源能够概念为一个通用的资源模型。

提供通用的资源统一接口。

数据库ER图:

关系图:

分析:

依照以上的类关系图和ER图能够看出。

整个权限能够抽象为五个对象组成。

OrgBean:

用于描述org模型。

Role:

用于描述角色。

Permission:

用于描述权限。

Resource:

用于描述资源。

Operation:

用于描述操作。

其中Permission中有Resource,Operation的聚合,资源和操作组成权限。

Role和Permis

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2