最近的工作是一个基础设计,打造一个基于RBAC和ACL的权限基础组件。
这个基础组件的特点是:同时混合了RBAC和ACL的认证方式,也就是说同时提供系统级别的授权(RBAC)和对象级别的授权(ACL)。
1. 表结构说明
1)组织单位(Organization)
组织单位作为基本结构单位。在人员的组织结构中,是用来表示组织结构树。(例如公司)
名称
|
定义
|
说明
|
id
|
bigint
|
主键,组织结构id
|
name
|
varchar
|
名称
|
dn
|
varchar
|
distinguish name
|
parentid
|
varchar
|
父组织单位的id
|
2) 用户(User)
是最小的自然单位,无法再包括子节点。对应自然人。(例如员工)
名称
|
定义
|
说明
|
id
|
bigint
|
主键,用户id
|
name
|
varchar
|
名称
|
password
|
varchar
|
密码
|
dn
|
varchar
|
distinguish name
|
parentid
|
varchar
|
所属的组织单位的id
|
3) 用户组(Group)
包含了多个用户的组(例如公司中的项目组)
名称
|
定义
|
说明
|
id
|
bigint
|
主键,用户组id
|
name
|
varchar
|
显示名称
|
dn
|
varchar
|
distinguish name
|
parentid
|
varchar
|
所属的组织单位的id
|
4) 属性(Attributes)
用来记录用户、用户组、组织单位的属性。
名称
|
定义
|
说明
|
id
|
bigint
|
主键,属性id
|
ownerid
|
bigint
|
属性的拥有者id
|
ownertype
|
varchar
|
属性拥有者类型:用户、用户组、组织单位
|
name
|
varchar
|
属性名称
|
attribute
|
Text
|
属性值
|
2. 关系说明
1) 用户组和组织单位:用户组是可以用来分配权限,而组织单位只是一个用来容器,不能用来分配权限,可以对它做组策备应用,组织简单一点说像一个文件夹,用来规划一个AD对象的。(比如一个公司可以拥有多个项目组,项目组是分配权限和资源的单位)
2) 用户和用户组: 是多对多的关系,同一个用户可以隶属于多个工作组,同一个工作组可以包含多个用户。(比如某个员工可以同时为多个项目组工作)
3) 用户和组织单位: 是一对一的关系,同一个用户只能在某个组织单位中。比如一个员工可以同时为多个项目组(用户组)工作,但是员工只能隶属于一个公司
(夜露死苦)
posted on 2009-02-06 20:11
夜露死苦 阅读(2204)
评论(3) 编辑 收藏