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