1. 程式人生 > >混合了RBAC和ACL的許可權系統(一) -- 使用者組織結構

混合了RBAC和ACL的許可權系統(一) -- 使用者組織結構

最近的工作是一個基礎設計,打造一個基於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) 使用者和組織單位: 是一對一的關係,同一個使用者只能在某個組織單位中。比如一個員工可以同時為多個專案組(使用者組)工作,但是員工只能隸屬於一個公司