摘要:探討了RBAC技術在ERP系統權限管理中的應用,介紹了RBAC在權限管理中的優勢。分析了ERP系統權限管理所要達到的目標,完成了一個基于角色的ERP權限管理的設計與實現。
關鍵詞:RBAC;角色;ERP;權限管理;JSP
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)11-20214-02
1 引言
隨著Internet的發展及基于Internet服務的迅速崛起,管理網絡化已成為趨勢。基于Web的ERP(企業資源計劃)系統以其獨特的優勢,掀起了新的潮流。首先,基于Web的信息管理擺脫了地域上的限制,使信息系統的管理更加方便,只要能上網的地方,就是基于Web的管理系統可以運行的地方,它使得遠程辦公、無紙辦公、遠程管理成為可能。其次,它的快捷性極大地提高了企業的工作效率。但由于網絡信息的共享特性.系統的安全問題變得越來越突出,具有越來越重要的地位。因此對用戶進行權限劃分是保證系統安全的重要措施之一。
對于在企業環境中的訪問控制方法,一般有三種:
① 自主型訪問控制(DAC):是在確認主體身份及所屬的組的基礎上,對訪問進行限定的一種控制策略,訪問控制策略保存在一個矩陣中,行為主體,列為客體。
② 強制型訪問控制(MAC):是指系統強制主體服從事先制訂的訪問控制政策。它主要用于多層次安全級別的軍事應用中。
③ 基于角色的訪問控制(RBAC):該技術主要研究將用戶劃分成與其在組織結構體系相一致的角色,以減少授權管理的復雜性,降低管理開銷和為管理員提供一個比較好的實現復雜安全政策的環境。
本文將基于角色的權限管理方法用于基于JSP的ERP系統中,以方便靈活地對網頁的訪問權限進行控制。
2 RBAC概述
基于角色的訪問控制(RBAC)一般包括:用戶(User)、角色(Role)、權限(Privilege)和數據對象(Data Object)。各個實體問的相互關系為:用戶是發 訪問操作和存取要求的主動方,是對數據對象進行操作的主體(Subject);權限是對某一數據對象進行某一種特定的操作的權利;數據對象即訪問控制的客體(Object),通常是被調用的程序或存取的數據訪問;角色就是用戶在系統內可執行的操作的集合,是RBAC中引入的一個重要概念。角色作為聯系用戶和權限的中間橋梁,一個角色與權限的聯系可以看作是該角色擁有的一組權限的集合,與用戶關聯又可以看作是若干具有相同身份的用戶的集合,用戶和角色以及角色和權限之間都是多對多的關系。一個登錄于某系統的用戶,可以通過他所具有的角色的權限來判斷其可訪問的系統資源和對系統資源可以進行的操作。圖1是RBAC基本的工作原理圖。
在ERP系統中為了更好的被人們所理解,一般把角色稱作職位或者職務,職位是按企業的業務需求來設計的,一個具體職務代表了在日常工作中處理某些事務的權利。這樣做不但方便了程序員和客戶之間的溝通,也簡化了管理員的權限管理操作,增強了系統的可讀性。
另外由于該企業是一個既有上游客戶和下游客戶的中間供商,所以時常有客戶要登錄系統。這些客戶以及一些實習人員等都是階段性用戶,為了安全起見要控制他們的訪問時效性。本系統在用戶信息中添加了一狀態列, 用于動態控制用戶訪問系統的可用性。
同時基于本系統的許多不同部門使用的相對獨立的應用子系統。各個應用子系統是由不同組的軟件開發人員并行開發的,而各子系統的開發進度不同。為了便于權限管琿,將系統訪問權限管理從各個子系統中提取出,形成獨立于各應用子系統的安全管理系統。各子系統的訪問權限都在該安全管理系統中進行集中管理。只需在數據庫中添加數據對象,當系統運行時,會自動將所有角色對新添數據對象的操作權限默認設置為最低權限(為了安全起見默認為最低權限,也可以由客戶自定義默認權限)。減少了管理員的工作量。如果需要詳細設置,可在角色管理頁面對需要修改的角色進行修改。
3 權限數據庫設計
數據庫采用的是Microsoft SQL Server2000 Enterprise,權限管理中涉及的表有四類,分別是:
①權限表;用來保存所有的功能菜單的表;
②用戶表;用戶表除了存儲用戶的登錄信息,還用來存儲用戶的基本信息?;拘畔⒖梢愿鶕蛻舻囊笞远x添加。
③角色表;角色先按部門劃分,然后按訪問類型再分類。。
④用戶一角色表和角色一權限表;用來保存用戶與角色及角色與權限之間關系的表。
4 權限管理實現
4.1 B/S三層體系結構
系統網絡結構采用B/S(Browser/Server)三層體系結構,數據資源和客戶機將被應用服務器分隔開(如圖3所示),應用服務器上存儲和運行應用邏輯。其著重客戶機對應用服務器的請求,客戶端訪問的是應用程序,由應用程序對數據進行查詢和存取,這樣就能保證數據不被非法使用和篡改。同時,這種結構也提高了系統的性能,簡化了用戶的管理。
4.2 開發工具的選擇
開發環境是Windows 2000 Server Enterprise + SQL Server 2000;
開發工具是My Eclipse;
采用JSP(JavaServer Page)技術,其與ASP技術相比具有更顯著的優點:
① 更高的執行效率和開發效率。JSP 作為Java平臺的一部分,擁有Java編程語言“一次編寫,隨處運行”的特點。
② 健壯的存儲管理和安全性。JSP頁面的內置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成Java Servlet,JSP頁面就具有Java技術的所有優點。
③ 更廣的平臺適應性。幾乎所有平臺都支持Java,JSP+JavaBean,它們可以在任何平臺下通行無阻。
4.3 MVC設計模式
MVC是J2EE平臺上推薦的一種設計模式,它把一個應用的輸入、處理、輸出流程按照視圖、控制、模型的方式進行分離,將WEB應用分為三層:控制層、模型層、視圖層.也稱為控制器、模型、視圖。
4.4 登錄用戶的訪問流程
圖5所示為用戶訪問表單頁面流程圖:用戶在訪問應用服務器之前,首先向身份認證服務器證實自己的身份和角色。然后讀取角色的信息并用session值存儲,由session值來判斷菜單選項的可用性(若權限不足,灰色顯示)以及具體表單頁面的按鈕可用性(例如“添加”、“刪除”、“修改”等按鈕)。
5 結束語
本系統主要有以下優點:
(1)通過瀏覽器由管理員在前臺對用戶進行授權,避免了管理員在后臺即數據庫側對各個表操作的復雜性.操作比較簡單易行而且可靠,并且授權可以精確到數據庫中的每一個表;
(2)采用了JSP技術和B/S 3層網絡架構,表現層充分利用了JSP的安全特性,增強了系統的安全性能:中間層采用組件封裝了基于角色的權限管理(RABC)的應用邏輯,極大地提高了系統的穩定性、可擴充性和移植性。
參考文獻:
[1] Ravi S sandhu. Role-Based Access Control Models[J]. IEEE Computer,1996.
[2] 劉曉華,張健,周慧貞. JSP應用開發詳解(第3版)[M]. 北京:電子工業出版社,2007.
[3] Bruce Eckel. Thinking In Java Fourth Edition[M]. Prentice Hall PTR,2006.
[4] 陳剛. Eclipse從入門到精通(第2版)[M]. 北京:清華大學出版社,2007.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文