王皓宇(勝利油田東辛采油廠,山東 東營 257000)
基于角色的訪問控制方法RBAC運用于網絡訪問控制權限設計,是為了快速設置限制訪問主體:如用戶、進程、服務等,對訪問客體:如文件、系統等的訪問權限,而Extjs框架技術中的多級動態樹結構結合RBAC,可以實現多級用戶角色訪問控制權限的高效管理。
企業網絡網頁訪問控制有三類:其中,自主式和強制式二者后臺權限維護工作量太大,需要專業人員太多,不便于管理。而以角色為中介,在用戶和權限之間進行訪問控制的RBAC網頁訪問控制,特點是在前端的管理中,就可以方便地管理用戶、角色和權限;而且系統的角色決定用戶能做什么,所以安全性大大提高[1]
ExtJS是一種用于編寫程序系統前端頁面,而與后面基層無關的Ajax框架[2,是實現樹結構的理想選擇[3]。采用ExtJS的前端開發技術和SSH框架(Struts+Spring+Hibernate)的后臺技術設計[4],可以有效解決前后臺管理互相影響的問題,其樹結構允許動態管理控制擴展和樹節點的異步加載,便于單獨修改增刪,而不影響系統的其它層。
基于角色的訪問控制方法效率高、又安全,但是用傳統的編程技術方法實現角色的訪問控制樹,依然非常復雜,要解決這個問題,需要引入Extjs框架技術,其ExtJS多級動態樹結構,實現了權限管理系統,其中功能模塊管理以ExtJS頁面的樹型結構來完成對整個信息平臺所需的多級功能模塊的動態管理;權限管理屬于對多級功能模塊的最終子節點的模塊動態管理;等級管理功能完成了分配不同等級的用戶不同的操作等級;角色功能對指定角色所擁有的等級和權限的分配;用戶功能為用戶分配指定的角色,實現不同模塊的不同操作。權限配置管理是對功能權限、模塊、以及模塊下功能進行配置,將功能權限、模塊分配給角色,使角色下的用戶根據職責的不同擁有不同的權限。功能權限是最小粒度的權限,能夠控制到web頁面中的按鍵、菜單等頁面元素。管理員可以自定義功能權限、定義權限編碼。具有新建、編輯、刪除功能權限功能。主要功能權限有新編軟件分類、編輯軟件分類、刪除軟件分類;新建軟件字典、編輯軟件字典、刪除軟件字典;圖標管理;新建資源區域、編輯資源區域、刪除資源區域;新建主機、編輯主機,不過,無權刪除主機。
軟件開發平臺:系統主體軟件框架采用基于J2EE技術成熟的SSH(Spring MVC+Spring+Hibernate)架構。該框架比較實用,前端頁面采用EXTJS,經過StrutsSpringHibemate,與數據庫DB進行交互,而且互不影響。
程序系統的建立。首先建立權限審批和管理之間的關聯結構。設計系統授權審批、用戶管理、軟件管理三大模塊,每個模塊的邏輯處理都是日志管理、安全管理和事務管理三項內容。其次,做好用戶角色權限數據表之間關系,用戶表、角色表、權限表三類數據表中,角色表有聯系用戶表和權限表的公共字段,便于角色做中介,以有限的權限應對大量不確定的用戶,節省系統開銷,提高運行速度和用戶瀏覽速度。第三建立程序時,界面表示層、業務邏輯層、數據訪問層三者之間可以有效獨立,并可互相調用,便于維護,升級,在需求變化時,只需要將其中某一小塊修改,而不需要大動干戈,要移植時,只需要在界面添加相應的控件即可,里面的類和實體,業務邏輯,數據訪問層都不需要修改。
權限管理系統架構分為3個層次:WEB應用層、業務實現層、數據層。WEB應用層為管理員進行權限管理和配置提供WEB操作頁面,主要有用戶管理、單位管理、角色管理和權限配置管理,又叫表示層的前臺web頁面使用Extjs RIA進行前臺頁面的開發,Struts框架是基于MVC的Web層的應用框架,接受ExtJS頁面數據。業務實現層接收來自從web頁面提交的管理命令實現權限的配置、授權,以及普通用戶在使用某個應用系統時進行權限的定制,如菜單樹的顯示、頁面元素的控制,另外還對用戶訪問過程中的會話控制。數據層采用Mysql數據庫用戶保存與權限相關的數據,包括用戶表、角色表、功能表、模塊表、以及表示模塊與功能、功能與角色、用戶與角色間的一些關聯關系的數據表;數據層的表與業務層實體對象通過ORM方式相對應。
這樣,在整套權限系統中,建立系統程序時,界面表示層、業務邏輯層、數據訪問層三者之間可以有效獨立,并可互相調用,便于維護,升級,在需求變化時,只需要將其中某一小塊修改,而不需要大動干戈,要移植時,只需要界面添加相應的控件即可,里面的類和實體,業務邏輯,數據訪問層都不需要修改,三層結構高效,簡潔,方便,易維護,易修改,因此采用包括表示層,業務層,數據訪問層的三層結構模式設計。按照上述相關設計實現的角色權限管理系統,反復修改后運行效果良好,可以推廣應用。
根據勝利油田軟件查詢系統的權限管理需求,結合ExtJS及RBAC、SSH技術,以及系統開發的基本原理,設計并實現了一套權限管理系統。前臺應用ExtJS富客戶端技術,基于角色權限管理,提高了用戶及安全管理,具有較高的可用性和可靠性。本文通過RBAC和Extjs設計權限管理系統的研究和實踐,驗證了二者結合的方法,具有實用、高效和安全的特性。