2. RBAC權限部分的表結構說明
1)系統權限(Permission)
系統權限列表
名稱 |
定義 |
說明 |
id |
bigint |
主鍵,系統權限id |
name |
varchar |
名稱 |
2) 角色(Role)
角色表
名稱 |
定義 |
說明 |
id |
bigint |
主鍵,角色id |
name |
varchar |
名稱 |
3) 授權(authorities)
給某個角色授予多項系統級權限
名稱 |
定義 |
說明 |
id |
bigint |
主鍵,id |
roleid |
bigint |
角色id |
permissionid |
bigint |
權限id |
4) 用戶組成員(memeberships)
用戶組以及用戶組成員
名稱 |
定義 |
說明 |
id |
bigint |
主鍵,用戶id |
groupid |
bigint |
用戶組id |
userid |
bigint | 用戶id |
roleid |
bigint |
角色id |
最近的工作是一個基礎設計,打造一個基于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) 用戶和組織單位: 是一對一的關系,同一個用戶只能在某個組織單位中。比如一個員工可以同時為多個項目組(用戶組)工作,但是員工只能隸屬于一個公司
(夜露死苦)