你这里提的关于'when'的问题,是不是应该和工作流结合起来
When:(State,Phase)对于复杂系统,每个对象都有一个生命周期,授权时可能要求区别对待。比如:一则新闻的生命周期可能有三个阶段:起草、审批、发布。在不同的阶段可以为不同的Who有不同的授权。
你这里提的关于'when'的问题,是不是应该和工作流结合起来
When:(State,Phase)对于复杂系统,每个对象都有一个生命周期,授权时可能要求区别对待。比如:一则新闻的生命周期可能有三个阶段:起草、审批、发布。在不同的阶段可以为不同的Who有不同的授权。
谢谢你的回复,很有价值啊。偶的砖头抛出去,收获到玉了。 :)
你的文章很精练,我还要细读细思考一阵子,先回复,以示感谢。
有几点想说,也不知道对错。
感觉大家说的都是授权,而没设计到认证,这也好,不过xn_jin提到的RBAC是个成型的东西么?
另外大家都谈自己的想法,除了一个pow2acl之外什么也没给,有没有具体些的东西。
JAAS谁熟悉,用他做可以么??
本人也想做个比较通用的 验证及权限自动管理系统 ,感觉验证可以用公用的模块做,而权限则可以通过administrator这个role进行不同环境下的选择,不过这样会出现一个权利集中管理的情况,但我想这样能更加简单些吧
如果说的不对,大家就不要利用宝贵的时间做答了,等我再研究研究的,要是你象批评,我还是很愿意听的,最好再有些好的建议。
先占位!
我现在在看基于角色的权限管理(RBAC)的文献,希望下一帖理一个思路给大家帮我看一下
安全管理有user、role、group、permission(HOW WHAT)几个概念(暂时不提及whick),user和role是多对多的关系。group和user是多对多的关系。group单纯是对用户从组织机构的角度进行分组,而role指一组用户和一组权限。group概念的引入主要是为了辅助解决whick的问题。permission是指对what(类,不是which实例)进行how操作的一个具体定义。
几点疑问:
1.group的引入就是为了解决whick的问题,但是group本身是有层次的,比如一个单位组织机构如下:
单位
a部
a1组
用户1
用户2
a2组
用户3
b部
b1组
b2组
对某些类型的数据要求是本大部门的人都可修改(比如数据owner是用户1,那么a部人都可以修改),而对某些数据是本小部门的人都可以修改(比如数据owner是用户1,那么a1组人都可以修改),这些问题我想在程序中都很难写成通用的东西,我想程序里部应该把groupid写死,但有的时候还必须写死。而且严重的问题是组织机构发生变化,程序的维护性就是个问题,就是说程序不能依赖动态的数据。
2.
还有rbac中提出的role可以继承的概念在实际系统中很实用,但是用关系数据库却很难表达,因为一个role可能有两个父role。
普通职员
开发部 工程部
老总
很简单的例子,老总具有开发部和工程部的全部权限,这样的例子在数据库中就很难表达,只能把开发部和工程部的权限给老总挨个重新设一次。