ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> ASP技术
对权限控制又很深入的讨论(2)
Re: 我也请教一个关于权限设计方面的问题 发表时间: 2003年10月24日 16:24:18 回复



发表人: littlebird 发表文章: 1 / 注册时间: 2003-10

看了这么多关于权限方面的讨论真是受益匪浅。

这里说说我的想法:

我认为对于多数企业应用项目,相对而言都不是很大的项目,权限管理部分是不是可以简化成:user *-->1 role 1-->* operate

用户可能有很多组织上的层次关系,但在这里可以将它压平,不论什么层次都直接和角色相关,而且只有一个角色

权限也可能有很多层次关系(比如新闻包括A、B或C部门的),这里也把它展开,让角色直接最底层的权限相关(如A部门新闻的修改权限)

根据用户获得它的角色,再根据角色获得它拥有权限的集合。



而group是用户的集合,把它加上会变得相当复杂;当然还可以有权限集合的概念也加入,那就更复杂了。







Re: 我也请教一个关于权限设计方面的问题 发表时间: 2003年10月25日 11:07:20 回复



发表人: iceant 发表文章: 413 / 注册时间: 2002-10

我想理一理思路,看看 ACL 与 RBAC 的区别:



还是以部门新闻来讨论,对于静态授权,在系统设计做需求分析的时候,往往就可以

确定一个系统角色的种类,像新闻系统中,根据需求,可能会有新闻发布者(Publisher),

新闻审核者(Reviewer),新闻浏览者(Visitor),管理员(Manager)以及超级管理员(Administrator)。



在设计的时候我们也已经把这些角色与相应的一些 Operation 绑定在一起。

如:Publisher 拥有 Publish_Operation + Modify_Operation

Reviewer 拥有 Review_Operation + Modify_Operation + Delete_Operation

Visitor 拥有 Visit_Operation,

Manager 拥有 Create_News_System_Instance_Operation +

Modify_News_System_Instance_Operation +

Delete_News_System_Instance_Operation

Administrator 负责 Create_User_Operation+

Delete_User_Operation+

Assign_Permission_Operation+

Deassign_Permission_Operation +

Assign_Role_Operation+

Deassign_Role_Operation



在授权时,往往先为一个用户(USER),赋予一个角色,如: Manager. 这样,USER 就

拥有了对所有 News_Instance(也就是部门新闻) 操作的权限。

现在假设用户(UserA)访问 Create_News_System_Instance 功能来创建一个新的新闻实例,

叫做 采购部门新闻. 因为我们在设计的时候就确定,该功能只能由 Manager 来访问,

于是,系统中权限的判断部分会首先判断当前用户(UserA)是否 Manager 角色,是的话就允许

访问,否则显示没有授权的错误信息。



所以,对于 Manager 这样的应用:

[1] 在设计的时候,我们就将这样的角色与相应的 Permissions(A list of Subject-Operation pairs)

关联在一起了,这里的 Subject 是所有的新闻实例(News_Instance),Operation

就是 Create,Modify以及 Delete.

[2] 在授权的时候,超级管理员(Administrator)可以利用 Assign_Role_Operation 将用户(User)

与 Manager 这个角色关联起来。这样,User 就拥有了对所有新闻实例的 Create, Modify 以及 Delete

操作的权限。

[3] 在权限判断的时候,RBAC 系统首先判断当前用户是否是设计时确定的角色(这里是Manager),

如果是,就允许用户访问,否则就拒绝访问,并显示错误信息。





对于 Publisher 这样的角色有些不同,Publisher 这个角色只与 Operation 绑定在一起,并没有与

具体的 Subject 相关联,因此,在授权的时候,还需要指定相应的 Subject.



所以,对 Publisher 这样只能事先确定 Operation 的应用来说:

[1] 在设计的时候,我们只能确定该角色能进行哪些操作,而不能确定这些操作实施的对象。

[2] 在授权的时候:

[2.1] 首先将 Publisher 与 Subject 关联,如将 Publisher 与采购部门新闻关联产生:

采购部门新闻_News_Publisher 的角色

[2.2] Administrator 为用户(User)授于 采购部门新闻_News_Publisher 角色。从而 User

拥有了对"采购部门新闻"的发布权限

[3] 在权限判断的时候,用户访问 采购部门新闻_News_Publish_Operation, 系统首先判断

该用户是否 采购部门新闻_News_Publisher?如果是,就允许用户访问,否则就拒绝访问,

并显示错误信息。

这里用到的方法可能是这个样子:

boolean checkPermission(采购部门新闻,Publish_Operation,User){

List publishers = RBAC.findRole(new Permission(采购部门新闻,Publish_Operation));

if(publishers==null) return false;

for(Iterator it = publishers.iterator; it.hasNext();){

Role publisher = (Publisher)it.next();

if(publisher.isAssignedWithUser(User)){

return ture;

}

}

return false;

}



假如说,不采用 RBAC 的做法,考虑T
 
 
本站关键词:
|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司||东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|东莞网站推广|东莞国内域名注册|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有