第六章 電子政務系統的使用者許可權管理 -- RBAC(一)
6.1 基於角色的訪問控制模型RBAC
工作流的訪問控制常使用基於角色的訪問控制RBAC(Role-based Access Control)模型來實現。因為角色代表了組織中的職責和分工,所以基於角色的訪問控制可以很好的反映一個組織的安全規範,利用角色層次和角色約束,可以在更大範圍實現安全策略,簡化組織的安全管理。在RBAC中,許可權和角色相關,使用者(user)被當作相應角色(role)的成員而獲得角色的許可權(permission)。這大大簡化了許可權的管理。角色針對組織中的各種功能建立,根據需要,可以把新的許可權賦予角色,當然也可以把許可權從角色收回。使用者依據他們的責任和資歷被指派角色,使用者被指派的角色可以容易地從一個轉到另一個。使用者對資訊的訪問在指派角色的基礎上被管制。使用RBAC,通過對角色、使用者的角色分配和角色許可權的分配,實施職責分離的SOD(separation
of duties)約束,可以有效避免欺詐行為的發生;通過最小許可權分配也可以避免在組織和系統內發生大的損失。
RBAC96是被普遍使用的RBAC模型,並較多地應用於工作流管理系統。它對許可權(permission)的解釋比較寬泛,依賴於模型應用的系統類別,如對檔案系統來說,可以是對檔案的讀寫和執行操作;對關係型資料庫管理系統來說,則體現在對錶和檢視等物件的保護,對應的許可權可以是對錶和檢視等的查詢、修改、刪除等操作。對工作流管理系統來說,許可權可以解釋為對流程及其任務的訪問控制,包括執行、取消等操作[1][2][3][4]
本專案對工作流的訪問控制以及對其它辦公資源的操作許可權控制借鑑了RBAC控制模型,並本著夠用、靈活和低成本的設計原則給出了簡單實現。
6.2 政務管理系統的訪問控制模型
本文所建立的控制模型包含組織、角色、使用者、資源、操作、許可權等六個模型元素,下面分別加以定義和分析:
組織
組織是角色的載體,沒有組織這一範圍限制,角色可能會不易區分。比如國土資源管理部門負責接收專案報件的“收件人”這一角色,多個部門或科室都可以設定這一角色。為了區分不同部門的同名角色,在審批工作流訪問控制模型中設定組織機構這一模型元素還是非常必要的。
角色
角色是職能部門或專案組中的職責定位,不同的角色對應不同的職能和許可權。基於角色的訪問控制模型將角色作為連線使用者和許可權的紐帶,通過為角色分配許可權和為使用者安排角色,實現分配和管理使用者許可權的目標。
使用者
使用者是審批工作流的主體,是對政府部門中公務人員的抽象表示,與自然人之間具有一一對應的關係,使用者名稱應該具有唯一性。與現實世界類似,在審批工作流中只有分配了角色的使用者才具有操作審批環節的許可。
資源和操作
資源是使用者操作的客體,資源可以有多種型別,如資源可以是資料,可以是過程定義,可以是任務例項,甚至可以是WEB頁的一個連結選單;操作以資源為載體,操作只有指向一個具體的資源才有意義。如當資源類別為過程定義時,資源名可以是已部署的過程定義名,操作就可以包括對過程定義的修改、對過程例項的瀏覽、控制(包括凍結、取消等)。
許可權
許可權是主體對客體的可操作集合,即使用者可獲得的資源以及在該資源上可以執行的操作集合。
圖6.1描述了政務管理系統訪問控制模型元素之間的關係:
圖6.1 基於角色的訪問控制模型
6.3 RBAC訪問控制模型的資料庫設計
圖6.2描述了政務系統資源許可權管理的資料庫表設計及相互之間的關係:
圖6.2 RBAC資料模型
6.4 系統資源許可權管理的實現
圖6.3 基於角色的使用者資源許可權管理頁面原型
如圖6.3所示,按照政務系統目前的管理內容及許可權控制的需求,本文實現了資源許可權管理的基本功能,在使用者管理模組包括基於部門、員工資料的使用者管理;使用者身份驗證(基於安全考慮,使用者密碼採用MD5加密儲存);使用者的角色分配;獲取使用者的角色列表等幾部分功能。在任務處理許可權控制方面,通過為任務分配角色,並與使用者的角色列表進行對照,在使用者工作臺列表顯示使用者可以處理的任務例項;並通過在任務定義時設定任務可以讀寫的業務表字段,達到控制角色使用者對業務表的操作許可權。
在資源操作許可權管理方面,為了提高資源管理的靈活性和可擴充套件性,系統增加了資源類別的管理。政務系統資源的一級類為“辦公桌面”,以區分本系統之外的其它資源類別。
基於WEB程式的特點,為降低資源操作管理的複雜度,在“辦公桌面”類別之下又設定了“連結資源”和“按鈕資源”等二級類。在“連結資源”類別下對頁面板塊、選單等資源進行了細分,使對資源的管理簡化為對頁面板塊、菜單鏈接地址的管理,而對應的操作主要是“點選連結進入”。這樣,可以對不同的部門角色分配不同的板塊及菜單鏈接許可權,使用者登入後,系統會根據使用者編號獲取使用者角色所擁有的辦公板塊及菜單鏈接顯示在辦公桌面上,使得使用者只能看到有限的工作選單,執行與其角色相匹配的有限操作。如通過設定,可以讓國土部門的土地登記人員,只能執行與土地登記業務有關的操作,包括執行土地登記審批業務的特定環節、查詢土地登記業務資料、監控土地登記業務流程(包括瀏覽查詢已完成流程、超期限流程等;如果是登記業務主管人員,還可以凍結或取消流程)等。
對按鈕資源的管理,目前只在流程監控的“重新指派任務完成人”操作中使用。有許可權的使用者,如系統管理員等,可以根據需要在瀏覽“未完成業務流程列表”時,點選“重新指派任務”按鈕,執行重新指派任務完成人的操作,以重新啟動因員工請假等原因而無法繼續的業務過程。沒有許可權的使用者如果點選按鈕,系統會拒絕操作的執行並給出提示。
今後,隨著辦公資源的豐富,還可以進一步增加對按鈕操作的控制,如資料的新增(insert)、資料的修改(update)等,可以通過對操作介面中新增、修改按鈕的限制達到控制資源操作許可權的目的。
ResourceManagementDo是User-Resource Management包中實現系統資源管理的類,圖6.4是根據角色獲取資源的主要功能列表:
圖6.4 系統資源管理類中負責資源獲取的主要方法
參考論文:
[1] PJames B.D. Joshi, Walid G. Aref, et al. Security models for web-based applications.
Communications of The ACM, 2001, 44(2): 38~44
[2] Michael E. Shin, Gail-Joon Ahn. 基於角色訪問控制的UML表示(UMLChina 譯).
29(2): 38~47
[4] Savith Kandala, Ravi Sandhu. Secure Role-Based Workflow Models. In: Proceedings of the
fifteenth annual working conference on Database and application security. MA USA: Kluwer