李江 閭松
【摘要】RBAC是業(yè)界目前公認(rèn)的解決統(tǒng)一資源訪問(wèn)控制的有效方法。本文利用RBAC完成網(wǎng)上書(shū)城的設(shè)計(jì),在完成網(wǎng)上書(shū)城功能的同時(shí),提高了系統(tǒng)的安全性。RBAC是將權(quán)限分配給一定的角色,而不是直接分配給用戶,用戶通過(guò)飾演不同的角色來(lái)獲得角色所擁有的權(quán)限。這樣,不同角色登錄網(wǎng)上書(shū)城后,能夠完成的功能操作不同,大大提高了系統(tǒng)的安全性和可操作性,而且不需要在每次創(chuàng)建用戶時(shí)進(jìn)行權(quán)限分配的操作,只需為用戶分配相應(yīng)的角色即可,角色的權(quán)限變更比用戶權(quán)限變更要少得多,因此,極大地簡(jiǎn)化了授權(quán)管理,減少了系統(tǒng)的開(kāi)銷(xiāo)。
【關(guān)鍵詞】角色 權(quán)限 管理
1 RBAC模型
權(quán)限一般可以理解為系統(tǒng)對(duì)用戶能夠執(zhí)行的功能操作所設(shè)立的額外限制,用于進(jìn)一步約束系統(tǒng)用戶能操作的系統(tǒng)功能和內(nèi)容訪問(wèn)范圍。而RBAC是一種更方便、安全、高效的訪問(wèn)控制機(jī)制,RBAC從控制主體的角度出發(fā),根據(jù)管理中相對(duì)穩(wěn)定的職權(quán)和責(zé)任來(lái)劃分角色,將訪問(wèn)權(quán)限與角色相聯(lián)系,通過(guò)給用戶分配適當(dāng)?shù)慕巧?,讓用戶與訪問(wèn)權(quán)限相聯(lián)系。角色成為訪問(wèn)控制中訪問(wèn)主體和受控對(duì)象之間的一座橋梁,RBAC模型如圖1所示。
2網(wǎng)上書(shū)城三層體系結(jié)構(gòu)
本文設(shè)計(jì)的網(wǎng)上書(shū)城采用模型層、視圖層和控制層體系結(jié)構(gòu),JavaBean、JSP、Servlet分別充當(dāng)著這三個(gè)角色。視圖層負(fù)責(zé)從用戶獲取數(shù)據(jù)和向用戶顯示數(shù)據(jù),在這層中不負(fù)責(zé)對(duì)數(shù)據(jù)流程的控制和業(yè)務(wù)邏輯的處理。而模型層負(fù)責(zé)處理業(yè)務(wù)邏輯和數(shù)據(jù)庫(kù)的底層操作,其中視圖層和模型層沒(méi)有直接的聯(lián)系??刂茖又饕?fù)責(zé)處理模型層和視圖層的交互,控制層接受視圖層的請(qǐng)求,然后從模型層取出對(duì)請(qǐng)求的處理結(jié)果,并把結(jié)果返回給視圖層。在控制層中只負(fù)責(zé)數(shù)據(jù)的流向,并不涉及具體的業(yè)務(wù)邏輯處理。JSP頁(yè)面充當(dāng)視圖層,負(fù)責(zé)頁(yè)面的表示,Servlet處于控制層,控制業(yè)務(wù)的流程跳轉(zhuǎn),JavaBean充當(dāng)著持久層的角色,進(jìn)行持久層的操作,和數(shù)據(jù)庫(kù)打交道,完成數(shù)據(jù)的增刪改查CRDU。頁(yè)面的設(shè)計(jì)采用模塊式開(kāi)發(fā),在其他頁(yè)面中需要用到這些頁(yè)面的時(shí)候,只需要調(diào)用即可實(shí)現(xiàn)代碼的復(fù)用,例如主要頁(yè)面的頭部和尾部。網(wǎng)上書(shū)城三層體系結(jié)構(gòu)如圖2所示。
3 RBAC在網(wǎng)上書(shū)城的應(yīng)用
權(quán)限管理模塊包括用戶管理、角色管理以及權(quán)限管理。用戶管理模塊用于管理員工的信息,比如書(shū)店聘用了新的員工,那么就需要在系統(tǒng)中增加一個(gè)員工信息并根據(jù)員工的職責(zé)給該員工分配相對(duì)應(yīng)的角色,此外,還包括員工的刪除、員工資料的修改等等。角色管理包括新增角色信息、刪除角色信息、編輯角色信息、以及為角色分配權(quán)限等操作,權(quán)限的管理則包括權(quán)限的增刪改查,通過(guò)讓用戶扮演不同的角色來(lái)實(shí)現(xiàn)權(quán)限的控制。
權(quán)限管理由員工管理、角色管理、權(quán)限管理三個(gè)小模塊組成,員工管理的功能有:?jiǎn)T工的添加、員工的編輯、員工的刪除以及為員工分配角色;角色管理的功能有:角色的添加、角色的編輯、角色的刪除以及為角色分配權(quán);權(quán)限的管理的主要功能就是添加角色、編輯角色、刪除角色,權(quán)限管理功能描述表如表1所示。
在權(quán)限管理界面,選定某一個(gè)員工,點(diǎn)擊后面的分配角色按鈕,跳轉(zhuǎn)到分配角色的界面,左右兩個(gè)列表框中分別顯示系統(tǒng)擁有的所有角色和已分配的角色,選定完成后點(diǎn)擊保存即可完成角色的分配,設(shè)置好系統(tǒng)的角色后,給一個(gè)用戶分配一個(gè)或者多個(gè)系統(tǒng)中的角色,當(dāng)管理員進(jìn)行操作,如果擁有這部分的權(quán)限,那么能夠正常操作,如果越權(quán)操作,那么會(huì)彈出錯(cuò)誤提示畫(huà)面,用戶可以重新選擇想要進(jìn)入的界面,如果用戶沒(méi)有操作,3秒鐘之后跳轉(zhuǎn)到后臺(tái)管理系統(tǒng)基本界面。
4小結(jié)
傳統(tǒng)書(shū)店隨著書(shū)店規(guī)模的增大,管理變得越來(lái)越繁瑣,管理系統(tǒng)在管理方面具有手工管理所無(wú)法比擬的優(yōu)點(diǎn),這就意味著開(kāi)發(fā)一個(gè)網(wǎng)上書(shū)城管理系統(tǒng)符合了時(shí)代的需求。系統(tǒng)還做了如下幾方面的安全性考慮,例如通過(guò)禁止用戶輸入危險(xiǎn)字符和替換輸入字符中危險(xiǎn)字符的方式來(lái)防止SQL注入,會(huì)員注冊(cè)時(shí)需要填寫(xiě)正確的隨機(jī)驗(yàn)證碼信息,采用這種方式來(lái)防止惡意的攻擊。系統(tǒng)也充分考慮到用戶的體驗(yàn),例如在顧客購(gòu)物訂單提交后,系統(tǒng)自動(dòng)向顧客發(fā)送郵件提示,在頁(yè)面的表現(xiàn)形式上也能夠給用戶良好的視覺(jué)體驗(yàn)。
參考文獻(xiàn):
[1]Xinze Guo,Chuanchang Liu,Zhiyuan Su. A Novel OA System Access Control Method Based on Improved RBAC Model[J]. IOP Conference Series: Materials Science and Engineering,2019,490(6).
[2]Jianfeng Lu,Yun Xin,Zhao Zhang,Hao Peng,Jianmin Han. Supporting user authorization queries in RBAC systems by role permission reassignment[J]. Future Generation Computer Systems,2018.
[3]Abdelouadoud Stambouli,Luigi Logrippo. Data flow analysis from capability lists, with application to RBAC[J]. Information Processing Letters,2018.
[4]Ning Pan,Zhiqiang Zhu,Liangsheng He,Lei Sun. An efficiency approach for RBAC reconfiguration with minimal roles and perturbation[J]. Concurrency and Computation: Practice and Experience,2018,30(11).
作者簡(jiǎn)介:李江(1971-),男(漢族),湖北黃陂人,南昌航空大學(xué)職工。主要從事:多媒體及計(jì)算機(jī)應(yīng)用。