功能、資源許可權管理的設計
一、目的
管理系統用戶的功能菜單許可權,物理資源(文件、數據)許可權。
二、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