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