新聞中心
- 一、RBAC 權(quán)限設(shè)計(jì)
- 1.1 模型概述
- 1.2 模型分類
- 二、基于RBAC的后臺(tái)管理系統(tǒng)
- 2.1 項(xiàng)目概述
- 2.2 技術(shù)選型
- 2.3 內(nèi)部處理流程
- 2.4 功能模塊展示
- 2.5 權(quán)限控制展示
- 2.6 下載說(shuō)明
一、RBAC 權(quán)限設(shè)計(jì) 1.1 模型概述
??基于角色的訪問(wèn)控制RBAC,是實(shí)施面向企業(yè)安全策略的一種有效的訪問(wèn)控制方式。
??其對(duì)系統(tǒng)操作的各種權(quán)限不是直接授予具體的用戶,而是在用戶集合與權(quán)限集合之間建立一個(gè)角色集合,每一種角色對(duì)應(yīng)一組相應(yīng)的權(quán)限。一旦用戶被分配了適當(dāng)?shù)慕巧?,該用戶就擁有此角色的所有操作?quán)限。
??這樣做的好處是:不必在每次創(chuàng)建用戶時(shí)都進(jìn)行分配權(quán)限的操作,只要分配用戶相應(yīng)的角色即可,而且角色的權(quán)限變更比用戶的權(quán)限變更要少得多,這樣將簡(jiǎn)化用戶的權(quán)限管理,減少系統(tǒng)的開銷。
(以上來(lái)源于百度)
簡(jiǎn)單理解就是,將用戶、角色、權(quán)限之間建立一種關(guān)系,當(dāng)為用戶賦權(quán)時(shí),可用通過(guò)角色來(lái)間接賦權(quán)。
如:一個(gè)用戶的角色是系統(tǒng)的管理員,他擁有對(duì)一張表的增刪改查,另一個(gè)用戶是普通的管理員,他就只有這張表的查詢權(quán)限等,再一個(gè)用戶他即是系統(tǒng)管理員又是普通管理員,那么他擁有兩種角色的所有權(quán)限。
1.2 模型分類
RBAC0 模型
??RBAC0 模型,是最簡(jiǎn)單、最原始的模型。
??模型將用戶、角色和權(quán)限用最簡(jiǎn)單的方式連接起來(lái)。用戶在使用一個(gè)功能的時(shí)候,可以認(rèn)為他發(fā)起了一個(gè)會(huì)話 (session),而個(gè) session 對(duì)應(yīng)一個(gè)角色,但一個(gè)角色可以對(duì)應(yīng)多種權(quán)限。換言之,用戶和角色是多對(duì)一關(guān)系,即:一個(gè)用戶只對(duì)應(yīng)一個(gè)角色,一個(gè)角色可以對(duì)應(yīng)多個(gè)用戶。
RBAC1 模型
??RBAC1 模型中,引入了繼承的概念。
??子角色可以繼承父角色的權(quán)限,父角色的權(quán)利大于子角色,并且為角色進(jìn)行了分層。
??例如:一個(gè)企業(yè)中,數(shù)據(jù)管理員可以對(duì)清單數(shù)據(jù)、定額數(shù)據(jù)都進(jìn)行管理。但是他的子角色是只有一部分人只能管理清單數(shù)據(jù),另外一部分人只能管理定額數(shù)據(jù)。
RBAC2 模型
RBAC2 模型中,在 RBAC0 模型的基礎(chǔ)上,引入了靜態(tài)職責(zé)分離和動(dòng)態(tài)職責(zé)分離兩種概念。
靜態(tài)職責(zé)分離:
??① 用戶的角色是有限制的,不能賦予所有角色。
??② 用戶想要獲得高級(jí)的權(quán)限,就一定有低級(jí)的權(quán)限。
??③ 用戶在互斥的角色中只能選擇一個(gè)。
動(dòng)態(tài)職責(zé)分離:
??① 用戶可以有多個(gè)角色,但是一次只能激活一個(gè)。
RBAC3 模型
RBAC3 模型是 RBAC1 和 RBAC2 模型的結(jié)合,需要同時(shí)考慮角色分層和角色設(shè)置之間的互斥關(guān)系。
二、基于RBAC的后臺(tái)管理系統(tǒng) 2.1 項(xiàng)目概述
??該項(xiàng)目主要展示 RBAC 的權(quán)限控制效果,并提供員工管理模塊以供測(cè)試。用戶登錄系統(tǒng)后,根據(jù)用戶所關(guān)聯(lián)的角色,查詢角色擁有的權(quán)限,如:菜單權(quán)限、按鈕權(quán)限。不同角色的用戶,所顯示的菜單可能也不盡相同。
??系統(tǒng)管理模塊主要有三個(gè)子模塊,分別是:用戶管理模塊、角色管理模塊和權(quán)限管理模塊。三個(gè)模塊中,管理員除了對(duì)于信息的基本管理以外,還可以對(duì)用戶進(jìn)行角色的分配,對(duì)角色進(jìn)行權(quán)限的設(shè)置,以實(shí)現(xiàn)動(dòng)態(tài)修改用戶的權(quán)限信息(菜單和按鈕)。
項(xiàng)目亮點(diǎn):
?① 系統(tǒng)除采用RBAC模型進(jìn)行訪問(wèn)控制以外,還配合Shiro框架完成系統(tǒng)的鑒權(quán)機(jī)制,其中RBAC負(fù)責(zé)左側(cè)菜單級(jí)別權(quán)限,Shiro負(fù)責(zé)按鈕級(jí)別權(quán)限。
?② 系統(tǒng)對(duì)于添加修改相關(guān)操作采用Validator完成表單參數(shù)的校驗(yàn),還會(huì)對(duì)于取值唯一的數(shù)據(jù)段進(jìn)行業(yè)務(wù)校驗(yàn),完善業(yè)務(wù)流程。
?③ 系統(tǒng)應(yīng)用Hutool工具類,配合完成數(shù)據(jù)的批量導(dǎo)出與導(dǎo)入工作。
?④ 系統(tǒng)使用Lombok框架,以簡(jiǎn)化實(shí)體對(duì)象中常用方法的構(gòu)建。
?⑤ 系統(tǒng)設(shè)置自定義業(yè)務(wù)異常類,配合業(yè)務(wù)消息枚舉類和業(yè)務(wù)結(jié)果包裝類,利用全局異常處理器處理, 使業(yè)務(wù)異常的不友好界面不會(huì)展示到客戶端,以此提高用戶的交互體驗(yàn)。
2.2 技術(shù)選型
前端:
- Layui:采用經(jīng)典的模塊化的前端框架,系統(tǒng)采用 2.5.6 版本。
- Layuicms:基于 Layui 的后臺(tái)管理模板,系統(tǒng)采用 layuicms2.0 版本。
后端:
- Spring:構(gòu)建系統(tǒng)核心邏輯的后端框架,系統(tǒng)采用 5.2.0 版本。
- SpringMVC:請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí) web 框架,系統(tǒng)采用 5.2.0 版本。
- Mybatis:連接數(shù)據(jù)庫(kù)的框架,系統(tǒng)采用 3.5.6 版本。
數(shù)據(jù)庫(kù):
- MySQL:項(xiàng)目的數(shù)據(jù)庫(kù),系統(tǒng)采用 8.0.31 版本。
- Druid:數(shù)據(jù)庫(kù)的連接池,系統(tǒng)采用 1.2.3 版本。
開發(fā)環(huán)境:
- IntelliJ IDEA :項(xiàng)目后端的開發(fā)工具,使用版本為 2022.3.1。
- JDK:Java 的開發(fā)環(huán)境,使用版本為 1.8。
- Maven:后端項(xiàng)目的打包工具,使用版本為 3.8.6。
- Tomcat:本地服務(wù)器,使用版本為 9.0.70。
2.3 內(nèi)部處理流程
??添加或修改數(shù)據(jù)信息時(shí),客戶端發(fā)起請(qǐng)求,服務(wù)器首先進(jìn)行對(duì)請(qǐng)求的發(fā)起者進(jìn)行認(rèn)證,通過(guò)后再對(duì)數(shù)據(jù)和業(yè)務(wù)進(jìn)行校驗(yàn),最后再進(jìn)行底層的數(shù)據(jù)操作,具體流程如下:
注:業(yè)務(wù)校驗(yàn)如:工號(hào)手機(jī)號(hào)不可重復(fù)等
2.4 功能模塊展示
管理員在登錄界面在輸入用戶名和密碼后,并通過(guò)滑動(dòng)驗(yàn)證,即可進(jìn)入到系統(tǒng)后臺(tái)。系統(tǒng)后臺(tái)的登錄界面如圖
??在系統(tǒng)管理模塊的用戶管理界面,管理人員可以根據(jù)條件查詢操作,還可以對(duì)系統(tǒng)用戶進(jìn)行添加、刪除、修改、重置密碼以及設(shè)置角色等操作,管理界面、修改用戶信息界面和設(shè)置角色界面如下圖所示:
??在角色管理界面,管理員可以通過(guò)名稱條件查詢角色,還可以新增角色、修改人員、刪除角色以及設(shè)置角色的權(quán)限等。角色管理界面和分配權(quán)限界面如下圖所示:
??在權(quán)限管理界面,左側(cè)是后臺(tái)系統(tǒng)權(quán)限的樹形列表,右測(cè)是權(quán)限信息管理的表格。管理人員能實(shí)現(xiàn)通過(guò)名稱和類型進(jìn)行條件查詢,還可以進(jìn)行新增、刪除以及編輯等操作。其中,默認(rèn)一級(jí)菜單的父ID為0,權(quán)限管理界面如圖所示:
員工信息管理界面是提供測(cè)試的界面,界面實(shí)現(xiàn)條件查詢、添加、修改和刪除。其中,刪除可以批量刪除也可以單條刪除,添加實(shí)現(xiàn)批量導(dǎo)入,也可以批量導(dǎo)出當(dāng)前條件下的所有數(shù)據(jù)。員工信息管理界面如下圖所示:
2.5 權(quán)限控制展示
用戶 “萬(wàn)能張三” 所的角色是信息管理員,信息管理員所擁有的菜單權(quán)限有:信息管理、員工管理,按鈕權(quán)限有:新增員工、導(dǎo)出員工和修改員工,如下圖所示:
“萬(wàn)能張三” 用戶登錄后,系統(tǒng)只展現(xiàn)其擁有的菜單權(quán)限和按鈕權(quán)限,如下圖所示:
2.6 下載說(shuō)明
下載本系統(tǒng)代碼的用戶,必須同意以下內(nèi)容,否則請(qǐng)勿下載。
- 出于自愿而使用本文,了解引用本文的風(fēng)險(xiǎn),且同意自己承擔(dān)引用本文的風(fēng)險(xiǎn)。
- 利用本文內(nèi)容構(gòu)建的任何信息內(nèi)容以及導(dǎo)致的任何版權(quán)糾紛和法律爭(zhēng)議及后果和作者無(wú)關(guān),作者對(duì)此不承擔(dān)任何責(zé)任。
- 在任何情況下,對(duì)于因引用本文而導(dǎo)致的任何難以合理預(yù)估的損失(包括但不僅限于商業(yè)利潤(rùn)損失、業(yè)務(wù)中斷與業(yè)務(wù)信息丟失),作者概不承擔(dān)任何責(zé)任。
- 必須了解使用本軟件的風(fēng)險(xiǎn),作者不承擔(dān)任何因本軟件而產(chǎn)生的難以預(yù)料的問(wèn)題的相關(guān)責(zé)任。
下載鏈接:https://download.csdn.net/download/weixin_43819566/87392802
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享文章:基于RBAC權(quán)限控制模型的管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/dhgdjs.html