網(wǎng)站制作NEWS
可能是史上最全的權(quán)限系統(tǒng)設(shè)計
權(quán)限系統(tǒng)設(shè)計前言
權(quán)限管理是所有后臺系統(tǒng)不可或缺的一部分,主要任務(wù)是限制不同人員對資源的訪問權(quán)限,防止由于權(quán)限缺失或操作不當(dāng)引發(fā)的風(fēng)險,比如錯誤操作或敏感數(shù)據(jù)泄露。
在當(dāng)前公司,我負責(zé)權(quán)限管理工作,對這塊設(shè)計比較熟悉。由于公司采用微服務(wù)架構(gòu),權(quán)限系統(tǒng)獨立出來,包括商品中心、訂單中心、用戶中心、倉庫系統(tǒng)、小程序、多個APP等十幾個系統(tǒng)和終端。
1. 權(quán)限模型
RBAC模型是目前最常用的權(quán)限設(shè)計模型,基于角色的訪問控制(Role-Based Access Control)。該模型包含用戶/角色/權(quán)限三個核心元素。用戶與角色、角色與權(quán)限之間均為多對多關(guān)系。
用戶是執(zhí)行操作的主體,可能包括2B和2C用戶,例如后臺管理系統(tǒng)用戶、OA系統(tǒng)內(nèi)部員工或面向C端的用戶,如阿里云的用戶。
角色作為橋梁,連接用戶和權(quán)限,一個角色可以關(guān)聯(lián)多個權(quán)限,而一個用戶可以關(guān)聯(lián)多個角色,從而獲得多個角色下的所有權(quán)限。這樣設(shè)計簡化了工作量,提高了效率,并具有良好的可擴展性。
權(quán)限是指用戶可訪問的資源,包括頁面權(quán)限、操作權(quán)限和數(shù)據(jù)權(quán)限。
RBAC模型包括基礎(chǔ)模型(RBAC0)、擴展模型(RBAC1、RBAC2、RBAC3)以及用戶組概念,以應(yīng)對不同場景的需求。
1.5 用戶組
當(dāng)用戶基數(shù)增大、角色類型增多時,對具有相同屬性的用戶進行分組,可以簡化管理員的工作。用戶組可以有上下級關(guān)系,實現(xiàn)更精細的管理。
1.5.1 組織
組織架構(gòu)用于控制角色和數(shù)據(jù)權(quán)限,用戶加入組織后自動獲得該組織的所有角色。
1.5.2 職位
職位定義了角色在特定部門的權(quán)限層次,如財務(wù)部總監(jiān)、會計和出納等。
1.6 組織/職位/用戶組模型
結(jié)合組織、職位和用戶組,設(shè)計出符合復(fù)雜場景的權(quán)限模型。
2. 授權(quán)流程
授權(quán)流程包括手動授權(quán)和審批授權(quán),權(quán)限中心可靈活配置兩者,以適應(yīng)不同需求。
3. 表結(jié)構(gòu)
基于權(quán)限模型設(shè)計表結(jié)構(gòu)較為簡單,主要關(guān)注多系統(tǒng)下的多對多關(guān)系。
4. 權(quán)限框架
項目中可選擇適合的權(quán)限框架,具體優(yōu)缺點及使用方法將在后續(xù)文章中詳細介紹。
5. 結(jié)語
權(quán)限系統(tǒng)的基礎(chǔ)性與復(fù)雜性并存,實際項目中需要考慮多系統(tǒng)、多用戶類型和多使用場景,但RBAC模型是核心,可以根據(jù)需求進行擴展。
多重隨機標(biāo)簽