1.什麼是權限管理系統?
權限管理是一個幾乎所有後臺系統的都會涉及的一個重要組成部分,可以說是後臺項目的基本功,主要目的是對整個後臺管理系統進行權限的控制,而針對的對象是員工,避免因權限控制缺失或操作不當引發的風險問題,如操作錯誤,數據洩露等問題。
權限管理主要是管控下面三個方面:
哪些頁面要設置權限哪些操作要設置權限哪些數據要設置權限下面的例子就是控制頁面的訪問權限:
權限管理核心就是兩方面:認證和授權。下面我們參考一下認證的演進過程,去深入了解一下:
2.認證的演進過程?
單體階段:
粘滯會話會把登錄狀態綁定到某個伺服器上
解決方案:
1.session複製:會話數據在伺服器之間進行同步複製;
2.無狀態會話:session數據存在客戶端瀏覽器上;安全問題,需要加密;存儲4K
3.session共享:集中存儲在某個地方(redis);
微服務階段:
採用透明令牌(引用令牌):token使用無意義的字符串,本質還是集中狀態會話:
輕量級(安全性要求沒那麼高)JWT
HMAC流程
RSA流程
3.什麼是RBAC模型?
RBAC(Role-Based Access Control )基於角色的訪問控制。
RBAC認為權限的過程可以抽象概括為:判斷【Who是否可以對What進行How的訪問操作(Operator)】這個邏輯表達式的值是否為True的求解過程。即將權限問題轉換為Who、What、How的問題。who、what、how構成了訪問權限三元組。
4.基於RBAC模型的權限驗證框架
Apache Shiro
Spring Security