構(gòu)建企業(yè)級(jí)用戶中心(下):可擴(kuò)展RBAC架構(gòu)與權(quán)限治理模型
在《構(gòu)建企業(yè)級(jí)用戶中心(上):核心價(jià)值、架構(gòu)設(shè)計(jì)與功能模塊全景圖》中,我們解析了系統(tǒng)分層與核心模塊。本文作為系列終篇,將深入探討多業(yè)務(wù)系統(tǒng)下的RBAC擴(kuò)展方案,覆蓋權(quán)限模型設(shè)計(jì)、角色治理框架、數(shù)據(jù)權(quán)限聯(lián)動(dòng)三大核心場景,并附贈(zèng)可復(fù)用的設(shè)計(jì)Checklist。
RBAC:Role-Based Access Control 基于角色的訪問控制,主要包含角色、權(quán)限、用戶三者之間多對(duì)多的關(guān)系。
最常見的是單一業(yè)務(wù)系統(tǒng)建設(shè)中支持創(chuàng)建菜單權(quán)限,設(shè)置菜單路徑,角色關(guān)聯(lián)菜單,再將角色分給1個(gè)或n個(gè)用戶,而對(duì)于企業(yè)的用戶中心要考慮支持多個(gè)業(yè)務(wù)系統(tǒng)的角色權(quán)限,并將這些角色權(quán)限之間相互隔離,能在用戶詳情中查看到用戶擁有的每個(gè)業(yè)務(wù)系統(tǒng)的權(quán)限,權(quán)限大的管理員也能看到用戶沒有擁有的權(quán)限,并可直接為用戶分配沒有擁有的權(quán)限。用戶中心已支持創(chuàng)建多個(gè)業(yè)務(wù)系統(tǒng)、支持各個(gè)業(yè)務(wù)系統(tǒng)內(nèi)單獨(dú)維護(hù)單點(diǎn)登錄的訪問權(quán)限,那么各個(gè)業(yè)務(wù)系統(tǒng)的角色權(quán)限及用戶也應(yīng)在應(yīng)用詳情內(nèi)管理。
一、RBAC在企業(yè)級(jí)場景的挑戰(zhàn)與升級(jí)
傳統(tǒng)RBAC(基于角色的訪問控制)在單一系統(tǒng)中表現(xiàn)良好,但面對(duì)企業(yè)多業(yè)務(wù)系統(tǒng)時(shí)需解決:
- 權(quán)限爆炸:N個(gè)系統(tǒng)×M個(gè)角色導(dǎo)致組合復(fù)雜度指數(shù)上升
- 跨系統(tǒng)隔離:電商客服角色(訂單系統(tǒng)權(quán)限)≠客服角色(CRM系統(tǒng)權(quán)限)
- 可視化管理:超級(jí)管理員需全局查看用戶權(quán)限分布
二、權(quán)限模塊設(shè)計(jì):從樹形結(jié)構(gòu)到動(dòng)態(tài)規(guī)則
- 考慮到web端、手機(jī)端等不同使用端的菜單權(quán)限控制不同,需支持建立多個(gè)權(quán)限組,并且每個(gè)權(quán)限組的信息字段可進(jìn)行定制化配置;
- 權(quán)限的基本管理功能,支持新增編輯刪除權(quán)限,支持移動(dòng)權(quán)限,支持創(chuàng)建子權(quán)限,在刪除父權(quán)限時(shí)需將子權(quán)限都刪除完成,權(quán)限的啟用禁用,批量導(dǎo)入導(dǎo)出等功能;
- 權(quán)限一般為樹形菜單展示,便于清晰查看權(quán)限的層級(jí)結(jié)構(gòu);
- 因?yàn)橛脩糁行淖鳛榻y(tǒng)一管理的位置,需將信息同步業(yè)務(wù)系統(tǒng),需對(duì)應(yīng)有相應(yīng)的標(biāo)準(zhǔn)接口將權(quán)限可以同步至外部系統(tǒng);
- 針對(duì)數(shù)據(jù)權(quán)限的設(shè)置,它也屬于權(quán)限的一種,但數(shù)據(jù)權(quán)限的設(shè)定無法和菜單權(quán)限保持一樣的設(shè)定,需要系統(tǒng)將常見的數(shù)據(jù)權(quán)限規(guī)則提前設(shè)計(jì)好,比如數(shù)據(jù)權(quán)限一般是設(shè)定可以看整個(gè)公司的數(shù)據(jù)、某個(gè)部門的數(shù)據(jù)等,那么部門的數(shù)據(jù)權(quán)限的數(shù)據(jù)維度就要提前設(shè)定好,以便于和組織機(jī)構(gòu)管理模塊建立聯(lián)系。
三、角色模塊設(shè)計(jì):柔性化治理框架
- 針對(duì)內(nèi)部外部、上下級(jí)、多部門等情況的角色管理方式不同,用戶中心也應(yīng)支持建立多個(gè)角色組,并且每個(gè)角色組的信息字段可進(jìn)行定制化配置;如果角色管理的信息一致,也可以只建一個(gè)角色組,便于統(tǒng)一管理。
- 角色的基本管理功能,支持新增編輯刪除角色,支持移動(dòng)角色,支持創(chuàng)建子角色,在刪除父角色時(shí)需將子角色都刪除完成、需要將角色下的用戶都移除掉才可刪除角色成功,角色的啟用禁用,批量導(dǎo)入導(dǎo)出等功能;
- 每個(gè)角色需分別綁定權(quán)限,綁定后的權(quán)限最好也為樹形展示,便于看出層級(jí)關(guān)系,對(duì)于未賦予的權(quán)限最好也能展示,因?yàn)榻巧芾碇饕獮楣芾韱T服務(wù),這么設(shè)計(jì)整體會(huì)非常清晰。
- 如果角色的管理需要到數(shù)據(jù)權(quán)限的級(jí)別,那么角色應(yīng)支持綁定數(shù)據(jù)權(quán)限,不同角色可綁定不同維度的數(shù)據(jù)權(quán)限,并支持通過標(biāo)準(zhǔn)接口同步至外部系統(tǒng);
- 角色編輯完成后可為角色分配人員,人員的角色分配可以在用戶詳情中,也可以在角色詳情中分配,一種是可以直接給一個(gè)用戶直接分配多個(gè)系統(tǒng)的角色,另一種可以直接給一個(gè)角色批量分配多個(gè)用戶,所以兩種方式都存在,對(duì)分配權(quán)限的管理者來講會(huì)增加很多便利性。
- 另外,對(duì)于批量操作,需要支持角色、用戶、數(shù)據(jù)權(quán)限的批量導(dǎo)入導(dǎo)出,方便數(shù)據(jù)維護(hù)與信息檢查。
- 有些企業(yè)的用戶管理會(huì)到崗位級(jí)別,如果業(yè)務(wù)系統(tǒng)的角色和崗位比較匹配,那么直接做成角色可以關(guān)聯(lián)崗位,之后有這個(gè)崗位的人員入職,就會(huì)自動(dòng)分配角色。
綜上所屬,用戶中心設(shè)計(jì)時(shí)一方面要考慮怎么將相互關(guān)聯(lián)的功能設(shè)計(jì)的可拓展性更強(qiáng),無論什么樣的業(yè)務(wù)系統(tǒng)接入用戶中心,都能滿足對(duì)應(yīng)的需求,哪怕最開始沒想到,也應(yīng)在后面的需求迭代中,以此原則為基礎(chǔ)展開;另一方面一定要著重考慮系統(tǒng)的便利性,因?yàn)橛脩糁行淖詈髸?huì)分給各個(gè)業(yè)務(wù)系統(tǒng)的管理員,整體的操作實(shí)用性、自動(dòng)性都需要全面考慮,盡量減少手工操作,釋放人效。
本文由 @產(chǎn)品貓頭鷹 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
- 目前還沒評(píng)論,等你發(fā)揮!