熱知識 | 數字化系統中的權限設計思路
發布時間:2023.03.20 來源:www.dafa56.cn
企業的數字化建設中,重要的一項是管理好人與資源的匹配,對應到應用系統中,就是不同的人由于擁有不同權限,他所看到的(數據權限)、能使用的(操作權限)資源不一樣。今天我們就來聊聊權限設計的思路。
什么是權限管理?
權限管理一般指根據系統設置的安全規則或者安全策略,用戶可以訪問而且只能訪問自己被授權的資源。通俗解釋就是,誰是否具有對某資源實施某個動作(增/刪/改/查)的權限。
權限如何設計
目前比較成熟的技術模型就是RBAC技術模型(Role Based Access Control),主要通過用戶、角色、資源三方面進行權限的分配。具體來說,就是賦予用戶某個角色,角色能訪問及操作不同范圍的資源。通過建立角色系統,將用戶和資源進行分離,來保證權限分配的實施。這一模型被廣泛運用于各個系統,較易掌握,其技術模型如下圖:
權限設計-用戶
用戶定義:從系統層面來說,就是登錄并使用系統的賬號。
用戶來源:本系統新增、批量導入、第三方接口同步。
用戶分類:
系統管理員:超級管理員、企業用戶管理員(租戶)、渠道用戶管理員。
用戶:企業用戶、供應商用戶、渠道伙伴用戶。
用戶組:本質上是用戶的集合。是基于用戶的共有屬性歸納出的組,目的是減少用戶授權的工作量。這里的屬性,可能是公司、部門、崗位、公司職級等等。
權限設計-角色
角色是權限的集合,基于業務需求創建。在用戶和權限之間起到橋梁連接的作用,方便大用戶量下的權限分配效率,簡化了用戶與權限的管理。
按照角色類型劃分:
普通角色:面向成員公司業務人員,可定義權限數據,也可繼承通用根角色的權限數據,普通角色需指定相關的組織級別(銷售組織、工廠等)。
復合角色:面向工作崗位,是業務角色的集合。體現角色的包含關系。
通用根角色:是某類工作職能的權限集合,如采購員、銷售員等,主要用于企業抽象及固化崗位職權,便于日常權限管理及用戶授權,同時可快速派生出業務角色,體現角色的繼承派生關系。
按照所屬對象劃分:
超級管理員角色:SYS_ALL,用于定義系統全部權限,系統預置角色。
企業管理員角色:企業管理員在創建其下的角色時,只能選擇該租戶所購范圍的功能,功能范圍可配置。
外部渠道伙伴管理員角色:可創建維護對應渠道伙伴自己的用戶及角色,減少企業管理員的權限維護工作量。
角色及授權:
一個用戶可以擁有多個角色,一個角色擁有多個權限對象的權限,用戶的權限是多個角色權限的并集。
權限設計-資源
從訪問的資源角度來說,權限資源管理主要包括如下兩類:功能權限管理、數據權限管理。
功能權限設計實現方案:
功能權限的設計及校驗邏輯相對比較標準和統一:查看該當前登錄用戶的角色是否包含該功能的權限。如果有,則表示有權訪問,否則表示無權訪問。本次設計的方向和思路主要是聚焦于資源的統一管理及自定義,以及資源管理平臺工具的實現。
數據權限設計實現方案:
數據權限管理領域,一直沒有統一的技術,大體有如下幾種方式:
程序編碼:硬編碼將權限邏輯與業務代碼耦合在一起。此辦法缺乏靈活性,難維護且擴展性差,缺點較明顯。
人員組織架構樹:通過人員所在的組織架構樹層級來實現數據權限的控制,此辦法實現簡單、單一的組織樹還可以,但是滿足的權限控制場景有限,無法實現非組織類型限制的數據權限管理要求,比如,只能查看國內/某類型的銷售訂單,無法查看國外/其它類型的銷售訂單。
數據規則:通過各種表字段、表達式和字段的值等查詢條件規則來實現特定范圍的數據獲取。此辦法可以滿足絕大部分需求場景,但是大量的查詢數據庫表勢必會影響系統的性能。
不管是功能權限資源還是數據權限資源,都稱之為權限資源對象。從系統產品角度,我們將權限資源對象劃分為兩種類型:標準資源對象,自定義資源對象。
標準權限資源對象:
系統預置部分最常用的權限資源對象,可以滿足絕大部分的權限控制需求。未來系統產品可根據實際交付項目需求經驗不斷迭代累積完善。主要包括如下幾類:
功能菜單類:此資源對象主要用于承載和控制功能菜單級權限。
功能按鈕類:此資源對象主要用于承載和控制功能按鈕級權限。
業務對象類:系統預置相應權限資源對象,常對應數據庫中的表,如產品檔案、生產任務單等。通過其包含的權限字段參數值來實現數據權限的控制。
API等其它類:系統可擴展其它類對象,滿足更多對象的權限控制需求。
自定義權限對象:
交付項目自定義的權限對象,用于滿足項目二開功能程序的權限檢查與控制,并且可增刪改查。
權限校驗邏輯
簡化和統一權限校驗邏輯,降低權限檢查的復雜度,提高性能,同時減少交付項目的權限二開工作量。
簡化和統一權限檢查邏輯
不管是菜單類權限、按鈕類權限,還是數據權限,只需要校驗用戶所具備的權限資源對象下字段參數的值和所要訪問的資源對象的值是否一致即可。根據返回的結果值,來判定具體權限情況。
“權限清則企業治,權限弛則企業亂”,權限管理不是一套簡單的系統配置,而是企業對業務效能的清晰梳理,這本身就是數字化變革。