最近的工作是一個基礎設計,打造一個基于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
夜露死苦 閱讀(2210)
評論(3) 編輯 收藏