權限管理系統 01 系統介紹

爲什麼需要權限管理系統?

  • 安全性:誤操作,人爲破壞,數據泄露等。通過權限管理,實現指定賬戶有不同的權限,可以操作指定的數據庫,特定的數據操作等,比如普通人員(只讀賬戶)只有查詢權限,沒有修改和刪除等權限。
  • 數據隔離:不同的權限能能看到以及操作不同的數據。財務只能財務或者其他指定人員可以看到財務數據庫。
  • 明確職責:運營、客服等不同角色,leader和dev等不同等級。運營可以看到店鋪訂單情況,客服能看到產品反饋情況,運營就不能都看到。運營可以看到業績情況,客服看不到 。

權限管理核心

  • 用戶 - 權限 :人員少,功能固定,系統簡單。比如 mysql數據庫。
  • RBAC :·Role-Based Access Control 用戶-角色-權限,都適用。基於權限的訪問控制。權限與角色相關聯,用戶通過成爲相應角色成員,而得到這個角色的權限。極大簡化了權限管理。在項目中,角色是爲了某種工作而創造出來的,而用戶根據自己的職責,被指派爲相應的角色,並且用戶可以很容易的被指派爲另一個角色,可以根據新的需求,賦予角色新的權限,權限也可從某個角色中回收。RBAC關注於 Users Roles Operations三者關係,Users和roles,roles和operations都是多對多的關係。

RBAC認爲權限的過程可以抽象概括爲:判斷【Who是否可以對What進行How的訪問操作(Operator)】這個邏輯表達式的值是否爲True的求解過程。

即將權限問題轉換爲Who、What、How的問題。who、what、how構成了訪問權限三元組。

RBAC支持公認的安全原則:最小特權原則、責任分離原則和數據抽象原則。

  • 最小特權原則得到支持,是因爲在RBAC模型中可以通過限制分配給角色權限的多少和大小來實現,分配給與某用戶對應的角色的權限只要不超過該用戶完成其任務的需要就可以了。
  • 責任分離原則的實現,是因爲在RBAC模型中可以通過在完成敏感任務過程中分配兩個責任上互相約束的兩個角色來實現,例如在清查賬目時,只需要設置財務管理員和會計兩個角色參加就可以了。
  • 數據抽象是藉助於抽象許可權這樣的概念實現的,如在賬目管理活動中,可以使用信用、借方等抽象許可權,而不是使用操作系統提供的讀、寫、執行等具體的許可權。但RBAC並不強迫實現這些原則,安全管理員可以允許配置RBAC模型使它不支持這些原則。因此,RBAC支持數據抽象的程度與RBAC模型的實現細節有關。

理想中的權限系統應該是什麼樣子的

  • 能實現角色級權限 : RBAC

  • 能實現功能級,數據級權限。
    功能級權限管理:功能權限管理技術,一般使用RBAC模型。提供以下幾個功能

    1. 角色管理:用戶定義角色,給角色定賦權限
    2. 用戶-管理界面:用戶給系統用戶賦予角色
    3. 用戶-權限界面:用戶定義權限

    數據級權限管理:沒有統一的技術,大體採用如下技術

    1. 硬編碼。if… else … 的形式和業務邏輯耦合在一起
    2. 使用規則引擎
    3. 專業的軟件
  • 簡單易操作,能應對各種需求

相關操作頁面

  • 權限管理頁面、用戶管理頁面、角色管理頁面
  • 角色和權限關係維護界面、用戶和角色維護界面

主流權限管理項目(框架)

  • Spring Security
  • Apache Shiro

下面兩個章節,將對 Security 和 Shiro 兩個框架進行學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章