功能、資源許可權管理的設計

一、目的

管理系統用戶的功能菜單許可權,物理資源(文件、數據)許可權。

二、RBAC模型設計

RBAC簡介

BAC模型(Role-Based Access Control:基於角色的訪問控制)模型是一種許可權實現模型,是系統許可權設計中的一套方法論。

RBAC認為許可權授權的過程可以抽象地概括為:Who是否可以對What進行How的訪問操作,並對這個邏輯表達式進行判斷是否為True的求解過程,也即是將許可權問題轉換為Who、What、How的問題,Who、What、How構成了訪問許可權三元組。

RBAC模型的核心對象為:用戶、角色、許可權

資源管理簡介

系統資源可分為邏輯資源和物理資源。邏輯資源如軟體系統的菜單、頁面、按鈕等等;物理資源如影片文件、音頻文件、pdf文件等等。

其中邏輯資源可以通過許可權來控制,物理資源可通過在角色下設置資源列表,通過角色關聯資源列表實現,也可直接將用戶和資源列表關聯實現。

許可權管理模型設計

所有的許可權管理最終都要落到用戶身上。

功能許可權E-R設計

  • RBAC0模型為基礎建立核心業務實體:單位(公司/部委/組織機構)、部門(科室)、用戶、角色、許可權
  • 使用關聯實體為核心業務實體建立映射關係:用戶角色、角色許可權等
  • 為方便數據查詢和業務拓展,增加單位許可權、單位角色映射關係。此兩項非必須。
  • 可按照RBAC1模型的設計思路,增加角色組,用戶關聯角色組、角色組關聯角色,角色關聯許可權。從而實現更細粒度的許可權管理。
  • 可按照RBAC1模型的思想,將部門和用戶的映射關係修改為m:n,將能夠實現一個用戶歸屬多個組織的許可權管理。如分公司的董事長同時兼任集團公司部門領導的情況。其中隱含了單位和部門關係為多對多,部門和用戶關係為多對多。當用戶登錄的時候,讓用戶自己選擇需要在哪個組織下工作。鑒於這種情況的項目相對而言為少數,大部分項目沒有那麼複雜的組織架構,可以對外提供兩套解決方案。

資源許可權E-R設計

業務弱關聯性設計

建立如下資源和業務實體的映射關係:

  • 資源本身作為一個業務實體,為資源劃分類型
  • 資源和單位建立映射關係,用戶隸屬於單位
  • 資源和部門建立映射關係,用戶隸屬於部門
  • 資源和角色建立映射關係,用戶關聯角色
  • 資源和行政區劃建立映射關係,用戶關聯行政區劃或部門關聯行政區劃或單位關聯行政區劃
  • 拓展:資源和XXX業務實體建立映射關係,用戶關聯XXX業務實體

優點:資源和業務實體為弱關聯性,可封裝成微服務組件對外賦能
缺點:關係模式更加複雜,開發、運維成本高

業務強關聯性設計

基於組織架構、職權(角色)、業務歸屬、區域、坐標等的業務實體建立如下映射關係:

  • 數據許可權的管理最簡單的維度就是基於功能許可權的管理
  • 根據業務數據歸屬分別建立用戶和數據的映射關係
  • 根據業務數據所屬業務閘口、區域(行政區域,地緣,自定義劃區)和業務實體建立映射關係,業務實體最終落到用戶上
  • 根據業務數據治理出來的坐標體系建立映射管理
  • 其他維度的數據許可權管理

優點:方便和業務集成、遷移順滑
缺點:和業務強綁定

三、快取設計

可能出現的問題:
1:用戶許可權資訊龐大,往redis中存儲大數據塊
2:用戶許可權資訊龐大,Mysql資料庫查詢效率低

四、認證服務設計

認證服務負責用戶登錄狀態的維護,對請求方簽發令牌;管理許可權資訊。
基於具體的業務形態,認證服務可劃分為兩類:內部系統用戶認證和許可權管理;自建開放平台用戶認證和許可權管理。
//TODO 後續抽時間設計

五、引用

RBAC模型簡介://www.cnblogs.com/Naylor/p/15250940.html