什么是權限控制
忽略特別細的概念,比如權限能細分很多種,功能權限,數據權限,管理權限等。
理解兩個概念:用戶和資源,讓指定的用戶,只能操作指定的資源(CRUD)。
ACL: Access Control List 訪問控制列表
以前盛行的一種權限設計,它的核心在於用戶直接和權限掛鈎
優點:簡單易用,開發便捷
缺點:用戶和權限直接掛鈎,導致在授予時的復雜性,比較分散,不便於管理
例子:常見的文件系統權限設計, 直接給用戶加權限
RBAC: Role Based Access Control
基於角色的訪問控制系統。權限與角色相關聯,用戶通過成為適當角色的成員而得到這些角色的權限
優點:簡化了用戶與權限的管理,通過對用戶進行分類,使得角色與權限關聯起來
缺點:開發對比ACL相對復雜
例子:基於RBAC模型的權限驗證框架與應用 Apache Shiro、spring Security
總結:不能過於復雜,規則過多,維護性和性能會下降, 更多分類 ABAC、PBAC等