王欣穎 覃章健 茍攀
【摘要】 權(quán)限管理系統(tǒng)主要實現(xiàn)權(quán)限授予、權(quán)限驗證的功能[1]。權(quán)限授予實現(xiàn)對模塊的某個功能的操作許可,組成權(quán)限數(shù)據(jù)庫,為用戶分配角色,實現(xiàn)授權(quán)。權(quán)限驗證通過實現(xiàn)定義好的權(quán)限數(shù)據(jù)庫,判斷該用戶是否對某個模塊的某個功能具有操作權(quán)限。根據(jù)實際需要及教學輔助系統(tǒng)的需求,采用基于角色訪問控制技術(shù)RBAC(Role Based Access Control)實現(xiàn)權(quán)限管理系統(tǒng),實現(xiàn)用戶、角色、資源等的分配與管理。
【關鍵字】 權(quán)限管理 角色訪問控制 RBAC 教學輔助系統(tǒng)
引言
權(quán)限管理,一般指根據(jù)系統(tǒng)設置的安全規(guī)則或者安全策略,采用安全授權(quán)和角色相聯(lián)系的原則,只有成為相應的角色組成員,才能獲得對應的權(quán)限且只能訪問被授權(quán)的資源。邏輯表述為:判斷“Who對What(Which)進行How的操作”的邏輯表達式是否為真。角色可以根據(jù)部門中不同的工作創(chuàng)建,再根據(jù)用戶的責任和資格分配資源,用戶就可以獲得對應的權(quán)限。隨著新功能的增加和刪減,角色可以分配更多的權(quán)限,也可以根據(jù)需要撤銷相應的權(quán)限。
一、權(quán)限管理系統(tǒng)描述
權(quán)限的核心部分是Who(權(quán)限主體)+ What (Which)(資源)+ How(具體權(quán)限)的問題,實現(xiàn)What和部分Which的權(quán)限問題,即創(chuàng)造權(quán)限、分配權(quán)限、使用權(quán)限。
基于角色的訪問控制方法(RBAC),是目前公認的解決大型企業(yè)的統(tǒng)一資源訪問控制的有效方法。對應用系統(tǒng)的所有對象資源和數(shù)據(jù)資源進行權(quán)限控制,比如應用系統(tǒng)的功能菜單、各個界面的按鈕、數(shù)據(jù)顯示以及各種行級數(shù)據(jù)進行權(quán)限的操控。
二、權(quán)限管理系統(tǒng)設計
每個權(quán)限,可分為訪問權(quán)限和可授權(quán)權(quán)限,如果用戶只授予了訪問權(quán)限,則他不能分配給其他人訪問。
2.1 用戶、角色、組
用戶(user)是權(quán)限的具體操作者,根據(jù)擁有的權(quán)限信息,可以歸屬于0~n個角色,可屬于0~n個組。用戶的權(quán)限集是用戶權(quán)限、角色權(quán)限、組權(quán)限的合集。
角色(role)是實現(xiàn)對相似權(quán)限的用戶進行分類管理,如管理員、用戶、訪客等。角色具有上下級關系,父角色的權(quán)限是自身和所有子角色的權(quán)限的綜合,形成樹狀的權(quán)限結(jié)構(gòu)?;诮巧臋?quán)限系統(tǒng),只為角色分配權(quán)限,用戶都隸屬于角色,不再單獨為用戶分配角權(quán)限。
組(group)是對用戶進行分組歸類,實現(xiàn)角色的合理分配,更好地管理用戶。同時組也可以具有自己的角色信息、權(quán)限信息。
2.2 權(quán)限數(shù)據(jù)庫設計
理清權(quán)限設計的思路和各對象之間的關系后,對權(quán)限管理進行數(shù)據(jù)庫建模,對象之間的關系,一般需要加入一個關聯(lián)表來示關聯(lián)的兩者的關系。實現(xiàn)形式如圖1所示:
三、權(quán)限管理原理及實現(xiàn)
目前使用較為廣泛的開源權(quán)限框架以spring security、apache shiro為主,也有采用基礎的設計,定制符合系統(tǒng)的權(quán)限管理??紤]到整個項目的需要及實際應用,項目中采用自定義的方式實現(xiàn)權(quán)限的管理。
項目中采用自定義權(quán)限管理對項目的各項操作實現(xiàn)私人定制。建立一個權(quán)限管理類(AuthMethod),使用注解的形式管理controller層的資源操作。默認base權(quán)限(基本操作權(quán)限,如訪問、登陸、注銷、注冊等),引入權(quán)限注解的操作,都需要權(quán)限驗證, 只有權(quán)限驗證通過后才能看到角色所具有的權(quán)限。其實現(xiàn)原理為:第一、在項目工程啟動的初始化過程中,初始化整個資源的權(quán)限信息;第二、初始化用戶角色組權(quán)限;第三、初始化加載在controller層的AuthMethod注解,具體化用戶的訪問權(quán)限。
在用戶訪問的時候,采用EL表達式
四、結(jié)束語
項目中采用定制權(quán)限的方式實現(xiàn)權(quán)限管理,為項目需要量身制作,更好的使用及控制。對系統(tǒng)的所有對象資源和數(shù)據(jù)資源進行權(quán)限控制,引入注解機制,對資源的具體操作進行嚴格控制,權(quán)限標簽加上EL表達式的權(quán)限控制,對數(shù)據(jù)顯示、界面按鈕、功能菜單等加以控制,更合理有效地管理及使用系統(tǒng)資源。
參 考 文 獻
[1] 祖 峰,熊忠陽,馮 永.信息系統(tǒng)權(quán)限管理新方法及實現(xiàn).重慶大學學報;2003.11第26卷11期.
[2] 朱磊,周明輝,劉天成,梅宏. 一種面向服務的權(quán)限管理模型.計算機學報;2005.04第28卷第4期.