聊聊我所理解的B端權限體系
本文作者從權限體系的構成出發,結合項目實踐中的所思所想,對自己從0-1搭建及管理B端權限體系時遇到的問題進行了梳理分析。
作為產品小白,搭建B端核心系統兩年,希望通過復盤分享,提升自我能力,對你也有所幫助。
一、背景
主流的權限體系都是基于RBAC模型建立,套路很明確,這里僅進行簡單介紹,重點講解我從0-1搭建及管理B端權限體系時遇到的問題和思考。
二、權限體系的構成
權限體系三要素:用戶、角色、權限
- 用戶:登錄平臺的使用者,通常需記錄用戶基本信息,姓名、ID、手機號、所屬部門、職位等;
- 角色:用于描述用戶在使用系統時,扮演什么人物,擁有該人物的哪些權利。B端系統最常見的幾種角色有超級管理員、平臺運營管理員、數據管理員等;
- 權限:是資源的集合,簡單點可以理解為用于決定用戶可以在該系統上看見什么、做什么操作。
通常分為菜單權限、功能權限、數據權限三種。菜單權限指用戶是否有訪問某菜單的資格,無菜單權限時,界面上可以直接隱藏該菜單的入口;當用戶進入某菜單后,是否可以點擊頁面的按鈕、是否可以對頁面的數據進行增刪查改等全部的交互動作都是由功能權限控制。最常見的應用場景是用戶A僅能查看頁面的數據,無下載數據的按鈕或者點擊按鈕無效;數據權限用于保證數據的私密性,主要體現在以下兩種場景中:
(1)數據的查看、下載:清單、報表
根據公司的業務屬性,在底層數據的加工清洗中,加入必要字段,對數據打標,通過標識控制權限。通??梢岳脠蟊?、清單的篩選條件作為數據權限劃分的維度,例如:從分公司、銷售渠道等業務架構區分,當用戶登錄系統時,根據其身份信息判斷用戶歸屬于分公司A,那么該用戶在報表中無法查看和下載歸屬分公司B的數據。
(2)數據的應用:大數據分群、畫像
針對不同的人群配置運營策略時,需要根據運營者和人群之間的關系,為該運營角色配置數據權限。例如:銷售渠道A的運營登錄系統后,只能針對歸屬于渠道A的客戶配置策略,無法選擇渠道B的客戶,或者即使界面上允許A選擇全量人群,底層數據也會根據A的角色信息對數據強制篩選區分,以避免各渠道業務交叉。
三者之間的關系如下所示:
- 一個用戶可以擁有多個角色
- 一個角色擁有若干權限
三、什么是好的權限體系
B端系統承載復雜的業務邏輯,功能往往涉及企業核心,因此在用戶權限體系的設計和管理上需要絕對嚴謹。好的權限體系可以:
- 避免無用功能對用戶產生干擾,影響工作效率;
- 避免非管理人員誤操作引發重大生產問題,保證系統安全;
- 避免數據交叉,造成重復運營,資源浪費;
- 避免不同職責之間的數據信息泄露。
四、我遇到的問題及思考
1. 關于用戶登錄信息的獲取
初期不熟悉公司業務,用戶登錄信息收集不完善,隨著系統業務線的擴張,用戶的登錄信息逐漸無法匹配權限控制規則,例如:數據權限的配置。如上描述,我們通過底層對數據打標可劃分數據權限,隨著數據標識的增加,權限判斷條件也增多,需要大量的用戶信息用于判斷。
所以在搭建時,應該詳細了解系統的業務范圍和長期規劃,梳理角色,并盡可能多的獲取用戶信息:
- 用戶注冊系統時,手工填寫身份信息,并預留字段以便后期補充;
- 通過內部OA系統,自動獲取。若角色與架構強相關,還可以通過識別用戶的所屬部門、職位,智能授權相應的角色;
- 如果有強大的標簽畫像系統,借助大數據的力量打標識別。
2. 關于用戶權限的長期維護
隨著系統的長時間運轉,在權限管理上,可能會因為用戶換崗或離司,未及時更權限信息,而導致信息泄露。我們可以:
- 權限系統和企業OA互通;
- 若OA所獲取的信息無法滿足系統要求,需通過用戶手工補充信息,則最好支持管理員角色定期下載全量數據,進行梳理;
- 系統也可設置自動清洗規則,如針對30天內未登陸的用戶,取消權限,授權需重新申請。
3. 關于權限的通用規則
當一個系統非常龐大,由多個產品經理負責時,如果沒有制定統一的權限規范,特別容易因產品提需求時忘記說明權限要求、或者理所當然認為開發應該知道如何控制權限,而造成新功能沒有做權限控制。
權限規范需按照系統的業務和架構制定,這里想到比較淺的幾點,舉例說明一下:當系統中涉及數據清單、報表時,要求所有的報表區分數據權限;當平臺功能是模塊化、組件化時,要求權限也與之對應,支持分模塊獨立配置操作權限;當一個用戶擁有多重身份、多個角色時,其權限獲取的優先級是什么等等。
4. 關于多個系統之間的權限
大的企業,可能有上百個系統,這些系統之間會由統一登錄中臺來管控內部人員的賬號信息。各系統內部又會在此基礎上根據業務屬性搭建各自的權限體系。當多個系統需要整合時,通常會采用SSO的方式,好處在于:
- 提高用戶的效率,無需登錄多個系統操作;
- 提高開發人員的效率。從系統A通過SSO進去系統B,系統B無需再驗證用戶的身份;
- 簡化對用戶權限的管理。
以上,是我對于系統權限搭建的理解,如有不妥,請多指教,謝謝。
本文由 @Holly 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
“各系統內部又會在此基礎上根據業務屬性搭建各自的權限體系”文章末尾一段話,“業務屬性”如何理解呢?
權限還分為, 功能權限與數據權限, 這兩個基本的大類
請問如何聯系作者?
holly_chen102149
學習了
多交流
不錯誒
謝謝