SpringSecurity+JWT之基于RBAC模型的權(quán)限管理系統(tǒng)

1.什么是權(quán)限管理系統(tǒng)?

權(quán)限管理是一個(gè)幾乎所有后臺(tái)系統(tǒng)的都會(huì)涉及的一個(gè)重要組成部分,可以說是后臺(tái)項(xiàng)目的基本功,主要目的是對(duì)整個(gè)后臺(tái)管理系統(tǒng)進(jìn)行權(quán)限的控制,而針對(duì)的對(duì)象是員工,避免因權(quán)限控制缺失或操作不當(dāng)引發(fā)的風(fēng)險(xiǎn)問題,如操作錯(cuò)誤,數(shù)據(jù)泄露等問題。

權(quán)限管理主要是管控下面三個(gè)方面:

哪些頁面要設(shè)置權(quán)限

哪些操作要設(shè)置權(quán)限

哪些數(shù)據(jù)要設(shè)置權(quán)限

下面的例子就是控制頁面的訪問權(quán)限:


權(quán)限管理核心就是兩方面:認(rèn)證和授權(quán)。下面我們參考一下認(rèn)證的演進(jìn)過程,去深入了解一下:

2.認(rèn)證的演進(jìn)過程?

單體階段:


粘滯會(huì)話會(huì)把登陸狀態(tài)綁定到某個(gè)服務(wù)器上

解決方案:

1.session復(fù)制:會(huì)話數(shù)據(jù)在服務(wù)器之間進(jìn)行同步復(fù)制;

2.無狀態(tài)會(huì)話:session數(shù)據(jù)存在客戶端瀏覽器上;安全問題,需要加密;存儲(chǔ)4K

3.session共享:集中存儲(chǔ)在某個(gè)地方(redis);


微服務(wù)階段:


采用透明令牌(引用令牌):token使用無意義的字符串,本質(zhì)還是集中狀態(tài)會(huì)話:

輕量級(jí)(安全性要求沒那么高)JWT


HMAC流程

RSA流程

3.什么是RBAC模型?

RBAC(Role-Based Access Control )基于角色的訪問控制。

RBAC認(rèn)為權(quán)限的過程可以抽象概括為:判斷【W(wǎng)ho是否可以對(duì)What進(jìn)行How的訪問操作(Operator)】這個(gè)邏輯表達(dá)式的值是否為True的求解過程。即將權(quán)限問題轉(zhuǎn)換為Who、What、How的問題。who、what、how構(gòu)成了訪問權(quán)限三元組。


4.基于RBAC模型的權(quán)限驗(yàn)證框架

Apache Shiro

Spring?Security

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容