淺談後台角色許可權系統
04-04
由於公司的商戶後台剛建立不久,之前僅能支持系統管理員和商戶管理員兩種角色使用,隨著產品和業務線逐漸成熟,參與到整個產品中的人員越來越多了,涉及的部門和角色也由從前的一兩種變成了多種,故由我主導了角色許可權系統的重構升級。在此將工作心得記錄下來,分享給需要用到的人。 先簡單介紹下我司的後台產品功能,我司主要業務是向B端企業客戶銷售一些智能硬體,客戶買到產品之後會將產品關聯到自己的商戶後台,硬體會上傳一些核心數據到後台供商戶管理查看,所以我們的後台核心功能是:設備管理、商戶管理、用戶管理、數據管理、產品銷售管理。 角色許可權系統屬於策略設計範疇,它的設計非常考驗一個PM對業務的理解力以及對自己後台所有功能的熟悉程度,做角色許可權系統之前一定要先深度了解業務流程以及後台的所有功能模塊,在不了解的情況下,多向相關同事請教,避免角色許可權系統設計過程中出差錯和邏輯漏洞,由於角色許可權系統屬於功能底層系統,很多的業務功能、前端功能都深度依賴角色許可權系統,所以盡量在第一次出產品方案時就儘可能的考慮全面,減少後續不必要的返工,如果前期產品方案不夠縝密,後期改動成本會非常大。目前市場主流的角色許可權模型是RBAC許可權模型,具體技術原理可以閱讀下這個博客基於RBAC的許可權設計模型 - _ali - 博客園,有人好奇為什麼做角色許可權系統設計還要了解技術架構呢?這個是為了讓設計者能夠設計出高效、安全、靈活且技術可實現的角色許可權系統。RBAC許可權模型核心就是功能許可權控制和角色產生關聯,角色再和用戶賬號關聯,即創建用戶賬號時選定一種角色,該角色里已經分配好了功能和許可權。拿我們系統為例,由於有系統管理員和商戶管理員的區別,即系統管理員可以查看所有的商戶和設備數據,商戶管理員邏輯上只允許查看自己商戶下 的設備數據,所以我為了更靈活高效的去創建用戶角色(比如:商務經理、商務專員、客服經理、客服專員等),我在用戶角色之前又設置了角色類型,詳見下圖:
關於用戶角色的創建許可權上這裡需要說明是,如果貴司組織結構比較龐大,使用後台的角色人員涉及到各個職能部門,且不同職能部門又有不同的角色,那麼創建、管理角色的許可權應該下放到各個部門的leader,便於管理系統用戶的效率,由於我司業務的特殊性,可以預想到會參與使用後台的角色大概十來種,所以我為了更加集中、高效、安全的管理用戶角色,設定的只有超級管理員可以創建和修改角色。一、工具準備思維導圖工具(mindmanager、Xmind都可,我用的Xmind)、word 、Axure.
二、給每個角色類型梳理功能架構圖
功能架構圖梳理是為了讓設計者清晰理解後台所有的產品功能模塊,以及各個產品功能之間層級關係,給每個角色類型都梳理一份功能架構圖,可以讓產品自身和開發以及項目成員都了解每個角色類型的區別,比如:超級管理員這個角色類型,它應該可以管理後台的所有產品功能,並且擁有一些自己獨有的功能許可權,比如角色管理和賬號管理功能我設定的只讓超級管理員有權訪問,其他角色類型全部訪問不了,所以也不需要配置,再比如高級全局管理員應該有管理低級別角色類型的許可權,而低級別角色類型不能管理高級別角色類型。梳理功能架構圖時可以根據一、二、三級這樣的功能層次來畫思維導圖,有的後台系統可能非常龐大,有人會問:是否需要把一級功能到三四五六級一直到末級的所有功能包括界面按鈕都全部羅列出來呢?這個需要看業務需求,看公司組織架構,多方面綜合考慮再決定許可權控制到哪一層,羅列到哪一級別的產品功能。通常情況下,許可權控制到二/三層級基本能滿足一個中小型公司的許可權管理需求,再大型一點的公司,可以控制到更深層級的功能許可權。此外,我並不建議將許可權控制到非常精細的級別,精細到可以控制前端頁面上的每一個按鈕,甚至每一個按鈕的顏色以及交互效果,因為後台產品的核心是管理平台,管理無非增刪改查四個操作,對於後台而言,管理的效率非常重要,如果許可權控制的過於精細,在進行創建、修改角色時,效率會非常低,並且如果不是系統的設計者理解起來會非常困難,對於頁面上的一些關鍵按鈕和操作可以加以控制。為了讓開發同學更容易理解後台許可權控制,PM在梳理思維導圖時,可參考以下幾點:1、層級劃分清晰,不同級別的功能盡量用不同的字體區分開。2、不同類型的功能許可權用不同的色塊兒填充,一般來講每種角色類型都至少會有兩種類型的功能許可權,(1)默認該角色類型擁有的功能許可權,無須配置 (2)需要配置的功能許可權 之所以給不同角色類型的默認設定了一些功能許可權,是為了創建角色和維護角色更加方便,比如:高級全局管理員角色類型對應的用戶角色可能是各部門leader,研發總監、客服經理、商務總監這樣的用戶角色,這些用戶角色普遍會擁有較大的許可權,同時又有所區分,假設系統有100個功能,那麼我默認將這些角色可能會共同擁有的70個許可權全部默認設定給高級全局管理員,將其餘的功能設定為可自由配置的功能,那麼當超級管理員去創建一個客服經理角色時,就只要配置剩餘的30個許可權即可。三、設計功能原型
角色許可權的內在規則邏輯設計好了,先和組內討論,通過產品評審後可以考慮出產品功能原型了,角色許可權系統的設計開發一定是 角色和功能是獨立的兩個模塊,他們二者通過配置關係產生關聯繼而會出現不同的用戶角色登錄系統後會看到不同的功能界面,所以在畫原型時只需要畫出最全的功能即可。當系統內功能和角色數量相對而言都比較少的時候,角色許可權管理功能可以考慮用橫豎列表形式展現。當系統內的角色和功能數量比較多的時候,可以考慮模仿windows文件夾展開的交互用多面板形式來展現角色和功能的關係。四、細化產品方案,形成PRD將原型和腦圖都梳理完畢後,最後就是把流程、細節從頭捋一遍,將要點全部整理到PRD里,最後拿著PRD去和技術同學開技術評審會了。
推薦閱讀: