摘 要:首先對RBAC產生、發展和現狀及其主要模型進行簡單介紹,然后根據RBAC權限管理模型的關鍵內容,設計了一個較通用的RBAC權限管理模塊,給出關鍵接口說明和數據庫描述。最后展示了該RBAC權限管理模塊在實際項目中的應用。
關鍵詞:訪問控制;基于角色的訪問控制;RBAC模型;權限管理模塊
中圖分類號:TP309文獻標識碼:A文章編號:16723198(2010)01028901
1 權限管理模塊設計
系統主要包括身份認證模塊、訪問控制服務和RBAC角色管理模塊。身份認證模塊鑒定登錄系統的用戶身份。訪問控制服務將訪問控制系統生成的用戶與角色、用戶與權限的映射關系提供給應用系統。RBAC角色管理模塊將請求執行的URL信息和用戶相關信息在RBAC數據庫中查找核對,鑒別用戶對他所請示的URL頁面是否有權執行,如果有,則Web服務器解釋請求,生成功能菜單,并在用戶瀏覽器上顯示結果。

1.1 基本類和接口設計
基于前面RBAC模型的闡述,將權限管理劃分為用戶管理模塊、角色管理模塊、操作管理模塊和角色權限控制模塊四個部分。
用戶管理模塊包含用戶管理類和用戶管理接口。用戶管理類包括用戶ID、登錄賬號、用戶姓名密碼、對應的角色和角色ID。用戶管理接口完成用戶的增加、刪除、查詢、用戶信息的修改保存以及為用戶分配角色,這些功能通過接口提供給外部使用,還可以作為共享服務提供給其他系統功能模塊。
角色管理模塊用來對角色和角色之間關系進行操作,包含角色管理類和角色管理接口。角色管理類里包括角色ID、角色描述、角色名稱和父角色,父角色可為空。通過角色管理接口可執行根據角色ID讀取角色對象、添加保存角色信息到數據庫、在兩個已有角色間建立新繼承關系、分頁列出角色列表等。
操作管理模塊主要管理系統中的可控對象以及對該對象能進行的各種操作,包含操作管理類和操作管理接口。用戶可以訪問的資源是指系統中文件、數據、按鈕、菜單及各種業務功能模塊,不同崗位的用戶擁有的操作也不同,訪問對象和對該對象所進行的操作構成了一個角色對該資源的訪問權限。操作管理類包括操作資源ID、角色描述、對應鏈接和操作名稱。操作管理接口可執行根據操作ID返回操作對象、分頁列出操作對象、刪除操作對象、保存更新操作對象和對象集。
角色權限控制模塊其功能是實現用戶角色的分配和回收,它包括角色權限類和角色權限控制接口。其中角色權限類包括操作資源ID和角色ID,角色權限控制接口可執行刪除角色權限對象、根據ID讀取相應角色權限、分頁列出角色權限、保存并更新角色權限和角色集。
1.2 數據庫設計
考慮RBAC權限管理模塊的需求,主要設計有用戶表,角色表,操作資源表,角色權限表,操作日志表。角色權限表用于存儲角色可執行的操作信息。操作資源表存儲用戶可執行的各種操作的URL地址,Link字段含義是用戶操作所對應的應用數據庫中的URL連接。操作日志表用來存儲用戶訪問系統時產生的日志。

2 模塊在實際項目中的應用
醫藥公司銷售查詢系統面向的用戶主要是藥品供應商、醫藥公司銷售人員、藥品購買客戶(藥店、醫院),每個訪問系統的用戶都是實名制,每個用戶都有自己唯一的角色,一個角色可以對應多個用戶。管理員在遵循RBAC模型的角色定義原則的前提下根據使用系統的用戶和醫藥公司崗位設定的實際需求,設計本系統的角色以及分配角色權限。如圖1所示,系統管理員可以通過角色管理服務來修改設計系統角色,通過角色動作關聯管理服務對不同角色的操作權限進行設置,通過用戶管理服務管理用戶信息并且為用戶分配角色。
參考文獻
[1]葉春曉,符云清,吳中福.RBAC中權限擴展的實現[J].計算機工程,2005,9(31):141142,172.
[2]蘇軍,薛順利,李尊朝.基于RBAC中用戶角色繼承的權限控制方式[J].西安工程科技學院學報,2006,(20):195198.