使用者許可權系統設計方案

2021-04-03 00:16:08 字數 3164 閱讀 9969

鍾峰·2023年10月

[版本:1.0.0]

本文介紹乙個應用於

企業應用通用的使用者許可權系統的設計框架,其設計思想與主要文件**自

sunwu software studio 的

isecuritymanager®

產品。本指南適用於體系結構設計人員和開發人員。

安全始終是可信賴的企業應用的基石。

在企業應用中,通常需要控制使用者對業務操作的許可權管理與控制。稍加分析不難發現這會涉及到這三個物件:使用者/角色動作/操作授權狀態,進一步分析,我們可發現「動作/操作」通常是針對某個特定的物件,譬如 『新增』動作可對應於『採購申請單』也可對應於『銷售出庫單』等,這些動作對應的物件我們將其稱之為「應用模組」。

至此,使用者許可權系統中的基本邏輯顯形:

誰(使用者/角色)對什麼(應用模組)是否具有某項操作(動作)的授權(授權狀態:授予-grant、拒絕-deny、繼承-revoke)。使用許可權的基本單位,角色是具有一組相同授權的使用者的交集。使用者與使用者之間沒有互相隸屬的關係,它只可以隸屬於角色,角色可以隸屬於另一角色,並且可具有多重隸關係。

使用者或角色通常具有以下屬性:

當然,在實際的商業應用中,可能還需要更多的屬性來描述特定的業務需求。如在

isecuritymanager®

中使用者和角色的資訊就有如下:

圖一:角色資訊

圖二:使用者資訊

有了使用者和角色物件,還必須有乙個描述他們之間隸屬關係的物件,這樣的物件我們稱之為「成員關係(member)」,通常它可能有如下屬性:

該「使用者編號」和「角色編號」組合唯一約束,這裡的「使用者編號」可能是乙個使用者物件的編號,也可能是乙個角色物件的編號,而「角色編號」則始終只能對應乙個角色物件的編號。乙個成員關係物件表示某個使用者或角色隸屬於另個角色。在

isecuritymanager®

中可能有如下介面表示:

圖三:使用者/角色成員關係

isecuritymanager®

中通過『成員設定』視窗來設定任何乙個使用者或角色(系統固定使用者和角色除外)所隸屬於的角色,也可以通過『

角色屬性』視窗來設定所屬於當前角色的直接下級成員。在涉及資料庫操作的應用中,四個基本操作是「檢視(select)」、「刪除(delete)」、「新增(insert)」以及「更新(update)」。在乙個企業應用中當然還會有更多其他的操作,儘管這些操作可能最終都基於這四個基本操作,也可能是其他的非資料操作,而我們始終無法在剛開始就完全固定這些可能的操作,為此,必須能讓系統開發人員根據每個具體的應用模組來定義其所屬的特定的動作/操作

動作/操作通常具有以下屬性:

isecuritymanager®

中「動作定義」的資訊就有如下:

圖四:動作定義

事實上,有些動作是需要針對具體的資料例項的,譬如「檢視」、「刪除」和「更新」等,這種對資料例項級別的控制比針對「應用模組」級的控制要更精細。譬如,某個使用者能進行對【採購申請單】的各項操作,他應該能檢視他剛填寫的單據並進行某些適當的修改,但是他卻不應該看到其他人填寫的資料。那麼,這種粗粒度的許可權設定顯然無法控制資料級的訪問,在

isecuritymanager®

中,專門使用「流程控制」的方案和技術來達致更細粒度的對資料例項級的訪問和控制。

應用模組通常是指對應於企業應用中的某種型別的業務單據,譬如

erp 系統中的【採購申請單】、【銷售出庫單】、【客戶基礎資料】等,這些業務單據可能對應一或多張資料庫表。如果從物件導向

動作/操作」則是類的方法,而「應用模組」對應的資料庫表(表結構)則是類的屬性,表中的這些資料/記錄就是類的例項了。

在定義規劃系統中的「應用模組」時,通常還需要指定某個「應用模組」可能具有的「動作/操作」,而這些「動作/操作」由『動作定義』中進行了定義。注意:應用模組是系統中的一種邏輯組織單位。

應用模組通常具有以下屬性:

isecuritymanager®

中「應用模組」的資訊就有如下:

圖五:應用模組定義

顧名思義,授權是指

使用者/角色能對哪些

操作(動作)是否具有執行的許可。這裡的「是否具有執行的許可」實際上指的是授權的三種狀態:授予-grant拒絕-deny繼承-revoke

如果對某個角色授予某項權力,其下屬的使用者或角色是可以覆蓋該項授權定義的。預設情況下,採用就近優先、拒絕優先的原則。

isecuritymanager®

中「授權設定」的資訊如下所示:

圖六:許可權設定

通常「 動作定義」是由系統開發商在系統設計、開發階段就定義好了,在系統交付給使用者使用後就不再對此更改了(當然這也不是絕對的,不是嗎?)。

至此,有關使用者許可權的各項設定、定義都完成了,事實上,這並不會立即為你的應用系統帶來任何安全保障,這只是一堆關於使用者和授權定義的設定資料而已,還必須在應用系統中去應用這些設定資料並根據其定義的控制邏輯以對業務資料進行控制。如何利用這些使用者授權資料來控制應用系統對業務資料的訪問,有很多不同的解決方案,但是我認為建立乙個中間資料儲存層來統一所有客戶端對資料來源的儲存訪問是個不錯的主意,並在這個資料訪問層中應用安全設定來對業務資料的各種訪問進行授權驗證和控制,這樣就可以統一各種客戶端對資料儲存的安全應用(事實上 isecuritymanager®

也正是如此處理這個問題的)。

鍾峰(popeye zhong)目前是

深圳恆泰豐科技公司 的.net開發組的架構設計人員。他曾經使用 c 語言做過圖形程式設計,在相當長的一段時期內從事 com/com+ 元件的開發和設計工作,並且短暫的做過 lotus/notes 和 dialogic 語音卡程式的開發,從2023年初開始使用.net這個充滿趣味和挑戰的開發平台。感興趣的除了企業應用架構設計、元件開發、安全、影象處理外還對汽車和槍械模型有濃厚的興趣。如果希望與他聯絡,可訪問

http://blog.csdn.net/sw515 或者email

[email protected]

使用者許可權系統設計方案

鍾峰 2004年10月 版本 1.0.0 本文介紹乙個應用於 企業應用通用的使用者許可權系統的設計框架,其設計思想與主要文件 自 sunwu software studio 的 isecuritymanager 產品。本指南適用於體系結構設計人員和開發人員。安全始終是可信賴的企業應用的基石。在企業應...

使用者許可權系統設計方案

鍾峰 2004年10月 版本 1.0.0 本文介紹乙個應用於 企業應用 通用的使用者許可權系統的設計框架,其設計思想與主要文件 自 sunwu software studio 的 isecuritymanager 產品。本指南適用於體系結構設計人員和開發人員。安全始終是可信賴的企業應用 的基石。在企...

使用者許可權系統設計方案

鍾峰 2004年10月 版本 1.0.0 本文介紹乙個應用於 企業應用通用的使用者許可權系統的設計框架,其設計思想與主要文件 自 sunwu software studio 的 isecuritymanager 產品。本指南適用於體系結構設計人員和開發人員。安全始終是可信賴的企業應用的基石。在企業應...