天天看點

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

對于業務複雜或資料龐大的系統,為了友善管理,一定要做權限設計。

權限設計是背景系統要考慮的一個授權政策問題。直白的說,權限設計就是根據公司的業務規則,對權限管理系統設定的安全政策。

權限一般分為功能權限,資料權限與菜單權限。

功能權限控制目前賬号可以操作的功能按妞,比如風控隻能稽核标的登記,但不能發起進件申請。

資料權限控制目前賬号可以看到的資料範圍,比如客服A隻能看到配置設定到她名下的出借人的投資資料。

菜單權限控制目前賬号可以看到的頁面内容,比如催收人員隻能看到案件逾期後流轉到催收頁面的内容。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

對于權限設計,關鍵是理清使用者、權限、角色三者的關系。即給誰建立賬戶,配置設定什麼角色,賦予何種權限。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計
  • 需求背景

權限設計的首要問題是明确需求。權限設計牽涉到背景系統底層架構的業務邏輯,在做背景系統之前,一定要對現有的權限控制和業務情況了解清楚,才能避免在權限設計的問題上踩坑。

以某車貸風控系統為例,我們通過相關業務部門的回報和目前權限系統的調研,發現它存在的問題有以下幾點:

  1. 使用者的權限歸屬不明确,導緻進件的申請和稽核操作為同一個人;
  2. 敏感資料沒有做權限控制和脫敏處理,導緻使用者隐私資料被洩露;
  3. 角色的分類不合理,每個使用者隻能配置一個角色,導緻工作組和流程節點比較複雜;
  4. 對所屬團隊的客戶經理、團隊經理和城市經理做了三級維護關系,但人員調動和離職率較大,導緻管理成本高。

了解完現有需求背景後,我們借鑒釘釘的那套權限維護方式,改進了管理系統的權限設計。

一方面收集權限需求,根據部門需求列一份權限清單,并做好CheckList。在子產品的功能頁面要放置哪些權限,完全可以根據《操作權限申請表》的業務需求,進行靈活的權限配置。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

另一方面借助UML模組化的用例圖,将角色按功能Uc級細分到增删改查導,友善确認相關人員的操作權限。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計
  • 設計過程

明确需求後,就要選擇合适的權限設計模型。做背景系統權限設計,我們可以借鑒一些控制模型。

常見的權限設計控制模型有:自主通路控制(DAC)、強制通路控制(MAC)、通路控制清單(ACL)、基于角色的通路控制(RBAC) 、基于任務和工作流的通路控制(TBAC) 、基于任務和角色的通路控制(T-RBAC)、基于對象的通路控制(OBAC)、使用控制模型( UCON)、基于屬性的通路控制(ABAC)等。

最常見的權限設計控制模型是RBAC模型。像業務複雜且功能龐大的某車貸風控系統,權限設計選擇的就是RBAC模型,主要是友善後續的擴充。

RBAC即基于角色的權限通路控制(Role-Based Access Control),在RBAC模型中,權限與角色相關聯,使用者通過成為對應角色的成員,進而得到這些角色的權限。即使用者關聯角色,角色關聯權限,可實作系統權限的靈活配置。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

通路控制的核心是授權政策。在RBAC模型中,Who、What、How構成了權限控制三要素,也就是Who對What(Which)進行How的操作。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

RBAC的權限授權其實就是Who、What、How的問題。Who:權限的擁用者,What:權限針對的資源,How:具體的權限。在RBAC中,根據權限設計的複雜程度,可分為RBAC0、RBAC1、RBAC2、RBAC3。

RBAC模型包含使用者(User)、資源(Resource)、操作(Operation)三個關鍵要素。通過将資源以及資源操作授權給使用者,而使使用者獲得對資源進行操作的權限,保證了權限配置設定的實施。

此外,RBAC模型遵循三條安全原則:最小權限原則,責任分離原則和資料抽象原則,進而簡化了權限管理。

  • 實施過程

選擇RBAC模型後,就要從賬戶、角色、權限三方面考慮實施過程,并滿足不同的使用者在使用過程中的不同權限需求。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

其中賬戶和角色關聯、角色和權限關聯,且都是多對多的關系。我們可以借助UML模組化的類圖了解三者之間的關系。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

以某車貸風控系統為案例,我們要為某風控A建立一個管理賬戶,并配置設定對應的風控人員角色,且在系統擁有通路标的詳情權限和操作标的登記權限。

賬戶管理

賬戶管理的入口在系統管理子產品,包括基本的新增賬戶,編輯賬戶,删除賬戶、檢視賬戶、查詢賬戶,以及給賬戶配置設定角色。

賬号管理是管理者最常用到的功能,相應字段一般是常用字段和特定字段。常用字段比如使用者ID,手機号,姓名,角色,狀态和注冊時間等,特定字段是公司業務需求,比如配置設定角色,登入時間,登入次數,通路IP,通路裝置等。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

管理者在新增賬戶時,通過給該賬戶配置設定風控人員的角色,進而擁有該角色的相關權限。RBAC模型就是通過給使用者配置設定角色,而取得角色的權限,這樣就簡化了使用者權限配置設定流程。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

角色管理

角色管理的入口在系統管理子產品,包括基本的新增角色,編輯角色,删除角色、檢視角色、查詢角色,以及給角色配置設定權限。

角色管理是用來管理公司内部使用者的角色資訊。一個複雜的背景會被分割成很多角色,比如管理者、營運人員、客服人員、财務人員、催收人員等。我們可把具有共同特征的某一類人群的身份進行歸納,進而為不同的使用者賦予對應的角色權限。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

管理者會根據公司業務需要,新增對應的角色,并給該角色賦予對應的頁面權限和操作權限。角色是關聯使用者和權限的紐帶,可以為使用者賦予該角色所內建的相關權限。我們在權限攔截流程設計時,就會限制菜單要根據給使用者配置設定的角色填充,隻顯示該角色可展示的菜單。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

權限管理

權限管理的入口在系統管理子產品,包括基本的新增權限,編輯權限,删除權限、檢視權限,以及給權限狀态進行開關。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

任何一個B/S系統或C/S系統都會做權限管理。權限管理限制使用者可以通路而且隻能通路自己被授權的内容或資料。

管理者在新增權限時,會限定權限性質為基本權限或操作權限。比如使用者沒有操作權限時,點選按鈕會提示無權限,或者按鈕置灰不可點選,或者隐藏該操作按鈕。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計

權限設計是背景系統必不可少的一個環節。基于RBAC模型的權限設計,能支援業務複雜的權限控制,也能滿足平台營運的安全政策,增加了權限管理的靈活性與簡便化。

rbac 一個使用者對應多個賬号_背景系統:基于RBAC模型的權限設計