vme
记得要开心哦 *^_^*

最近准备做个权限管理系统的组件,以用于应用程序的开发,该组件的体系基本上是来源与RBAC模型。
以下是组件的体系结构。组件还在设计过程中,请大家谈论讨论下,看看有没有更好的体系方案。

主要功能

1、  基于角色控制(RBAC)的权限管理;

2、  用户-角色-权限三种元素各自的继承组合策略;

3、  同种元素间的约束机制;

4、  冲突管理及不同级别的冲突处理策略;

5、  权限验证性能;

6、  权限信息的永久化;

范围

(1)       本组件适用于采用.net技术开发的有涉及用户权限管理的应用程序;

(2)       本组件的用户系统不能代替应用程序的用户管理系统,必须进行一定的业务扩展;

(3)       本组件在权限上有粗细度的规定,即权限只定义业务的类型权限,业务的实例权限必须由应用程序负责解决;

(4)       1.0版本包含一定程度上的二次开发接口,不包含所有期望的二次开发接口。

关键技术

1、  Session 机制的建立;

2、  约束策略和冲突检测算法的实现;

3、  数据永久化接口;

4、  性能的优化(使用全局缓存等);

5、  使用复用技术和使用合理的设计模式提高组件的可用性和可扩展性。




说明:

PRMSPermission):许可/权限,即权限系统的最小单位,代表某一种不可在细化的权限,每个许可都有一个相应的值,该值由构成许可的许可元素所决定。

SourceOperateDomainPermission Element):许可元素,定义许可的内容和性质等。

Role:角色,权限分配的单位与载体,代表某类业务的范畴。

User:用户,是权限的拥有者或主体。用户和权限实现分离,通过授权管理进行绑定。

Session:会话,一个Session是个映射,一个user到多个role的映射。当User激活他所有角色的一个子集时,建立一个Session。每个Session属于某个User,每个User拥有多个Session

SSDStatic Separation of Duty Relations):静态责任隔离,即具有冲突的元素(如PRMSRoleUser)不能组合在同一个元素。冲突是建立在元素约束的基础上的。规定,在PRMSRole层次必须实现SSD

DSDDynamic Separation of Duty Relations):动态责任隔离,即具有冲突的元素可以组合在同一个元素里面,但在一次Session不能扮演两个冲突的角色。UAgt(用户代理)必须实行DSD

PHPRMS Hierarchy):许可组合,即具有某类相同性质的PRMS的组合。该组合一般代表一定的功能。组成PH时必须实现SSD

RHRole Hierarchy):角色组合。该组合一般代表某几项业务的权限。

UHUser Hierarchy):用户组合。该组合一般和应用程序系统用户的岗位有关。

PAPermission Assignment):许可分配,即将若干个许可分配给某个角色的过程。

UAUser Assignment):用户授权,即将若干个角色分配个某个用户的过程。

UAgtUser Agent):用户代理,即在一定的策略下,用户A授权给用户B,让用户B代理用户A的行使用户A权限,该过程必须实现DSD

posted on 2005-02-23 11:57  vme  阅读(5340)  评论(15编辑  收藏  举报