后臺(tái)權(quán)限設(shè)計(jì)避坑指南:從基礎(chǔ)模型到企業(yè)實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié)

3 評(píng)論 2710 瀏覽 19 收藏 25 分鐘

一、引言

在產(chǎn)品設(shè)計(jì)中,權(quán)限設(shè)計(jì)常被當(dāng)作“技術(shù)細(xì)節(jié)”或“配置瑣事”草草帶過(guò),直到系統(tǒng)出問(wèn)題,才發(fā)現(xiàn)它是整個(gè)產(chǎn)品不可或缺的底層機(jī)制。從云計(jì)算平臺(tái),到企業(yè)中臺(tái)系統(tǒng)建設(shè),我見(jiàn)過(guò)太多權(quán)限體系:要么復(fù)雜得沒(méi)人敢動(dòng),要么簡(jiǎn)單到形同虛設(shè)。最典型的失敗是業(yè)務(wù)方根本不用,每次上線產(chǎn)品經(jīng)理還要手動(dòng)幫他們配置權(quán)限。

從產(chǎn)品經(jīng)理視角看,權(quán)限設(shè)計(jì)藏著太多隱性成本,比如角色邊界模糊會(huì)直接導(dǎo)致數(shù)據(jù)泄露風(fēng)險(xiǎn),甚至變成合規(guī)審計(jì)的定時(shí)炸彈。此外,權(quán)限體系沒(méi)有設(shè)計(jì)好,產(chǎn)品就無(wú)法穩(wěn)定擴(kuò)展,如安全性、操作透明度、協(xié)作效率都會(huì)出現(xiàn)問(wèn)題。往小了講它是系統(tǒng)可被信任的前提,決定用戶能不能順暢找到功能,是角色邊界的體現(xiàn)、往大了講這是你能否說(shuō)服團(tuán)隊(duì)“這套系統(tǒng)可上線”的一部分,決定是否可支撐整個(gè)業(yè)務(wù)架構(gòu)的安全運(yùn)轉(zhuǎn)。因此,權(quán)限的好壞,不只影響產(chǎn)品本身,還直接關(guān)乎了后續(xù)的運(yùn)營(yíng)。

這篇文章主要講一些被權(quán)限設(shè)計(jì)「毒打」后的一些感悟,希望你讀完,會(huì)對(duì)“權(quán)限”多一點(diǎn)理解,少一點(diǎn)被動(dòng)。

二、一些權(quán)限相關(guān)的基礎(chǔ)知識(shí)

2.1 權(quán)限設(shè)計(jì)核心概念

在聊設(shè)計(jì)方案之前,需要先厘清一些基礎(chǔ)概念。權(quán)限體系的核心,圍繞“誰(shuí)(主體)對(duì)什么(客體)能做什么”展開(kāi),這里就組成權(quán)限三要素:主體(Subject)、客體(Object)和權(quán)限操作(Action),我看有些文章把權(quán)限三要素叫用戶、角色和權(quán)限,只能說(shuō)多少有點(diǎn)誤導(dǎo)人了(包括我)。

  1. 主體(Subject):權(quán)限的「擁有者」或「執(zhí)行者」,即「誰(shuí)」在使用權(quán)限。常見(jiàn)表現(xiàn)形式如用戶(用戶組)、角色(角色組)和組織單元(部門(mén) / 職級(jí) / 項(xiàng)目組)都是一個(gè)主體。通過(guò)「用戶→角色→組織」的關(guān)聯(lián)關(guān)系,避免重復(fù)配置權(quán)限。
  2. 客體(Object)權(quán)限的「作用對(duì)象」,即「什么資源」需要被管控。表現(xiàn)形式如對(duì)系統(tǒng)功能模塊的操作資格,對(duì)數(shù)據(jù)的訪問(wèn)與操作范圍以及對(duì)系統(tǒng)接口 / 服務(wù)的調(diào)用能力都屬于客體。解決 “哪些東西需要被權(quán)限控制” 的問(wèn)題。
  3. 權(quán)限操作(Action)主體對(duì)客體的「具體行為」,即「能做什么」。常見(jiàn)類(lèi)型包含CRUD 操作,包含增(Create)、刪(Delete)、改(Update)、查(Read)。還有一些特殊的操作審批(Approve)、導(dǎo)出(Export)、授權(quán)(Grant)等等

在《信息安全系統(tǒng)》一書(shū)也把訪問(wèn)控制稱(chēng)呼為主體、客體和策略,不過(guò)我還是認(rèn)為叫操作可能更形象一點(diǎn)??腕w(Object)和權(quán)限操作(Action)是權(quán)限體系中兩個(gè)核心要素,但是有時(shí)候又容易被混淆。簡(jiǎn)單來(lái)說(shuō),同一個(gè)客體上可以有多個(gè)不同操作,而操作必須依附于具體客體存在。客體是 “目標(biāo)”,操作是 “動(dòng)作”,二者組合形成完整的權(quán)限,如 “用戶 A 可導(dǎo)出財(cái)務(wù)報(bào)表”。

此外,還有權(quán)限顆粒度、權(quán)限校驗(yàn)、繼承回收、數(shù)據(jù)行權(quán)限、數(shù)據(jù)列權(quán)限等等進(jìn)一步細(xì)化權(quán)限邊界的手段。理解這些概念,是構(gòu)建清晰權(quán)限模型的前提。只有把這些基礎(chǔ)要素梳理清楚,才能談權(quán)限系統(tǒng)的可維護(hù)性、可擴(kuò)展性和可配置性。

2.2 三大經(jīng)典權(quán)限模型

理解權(quán)限模型,是權(quán)限設(shè)計(jì)中最關(guān)鍵的一步。權(quán)限模型本質(zhì)是定義“誰(shuí)在什么條件下能操作什么”的規(guī)則引擎,軟件系統(tǒng)演變已經(jīng)幾十年,很多前人種的樹(shù)可以直接拾人牙慧。經(jīng)過(guò)數(shù)十年的產(chǎn)品演進(jìn),業(yè)界已沉淀出 ACL、RBAC、ABAC 等成熟模型體系,這些前人打磨的「權(quán)限架構(gòu)工具包」,能幫我們避免重復(fù)造輪子,直接在成熟框架上構(gòu)建符合業(yè)務(wù)需求的權(quán)限體系。

常見(jiàn)的三種模型包括RBAC(基于角色的訪問(wèn)控制)、ABAC(基于屬性的訪問(wèn)控制)ACL(訪問(wèn)控制列表),它們各自適用于不同的業(yè)務(wù)復(fù)雜度和控制需求。

RBAC(基于角色的訪問(wèn)控制) 是最主流的模型,核心思想是:用戶被賦予角色,角色擁有一組權(quán)限。

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》

它的優(yōu)勢(shì)在于結(jié)構(gòu)清晰、易于管理,非常適用于企業(yè)后臺(tái)、B 端管理系統(tǒng)等固定角色分工明確的場(chǎng)景,比如我現(xiàn)在在做的諸多內(nèi)部系統(tǒng),就經(jīng)常會(huì)用到這個(gè)。RBAC 又可以進(jìn)一步分為RBAC0、RBAC1和RBAC2:

  • RBAC0(基礎(chǔ)模型):用戶通過(guò)角色獲得權(quán)限,角色與權(quán)限是靜態(tài)綁定的。
  • RBAC1(角色層級(jí)):在基礎(chǔ)模型上增加角色繼承關(guān)系,高權(quán)限角色自動(dòng)擁有低權(quán)限角色的權(quán)限。
  • RBAC2(約束模型):引入約束規(guī)則,如職責(zé)分離、互斥角色,增強(qiáng)系統(tǒng)的安全控制能力
  • RBAC2(擴(kuò)展模型):為簡(jiǎn)化配置和提升復(fù)用性引入用戶組和權(quán)限組,將同類(lèi)用戶批量關(guān)聯(lián)角色,將高頻權(quán)限組合給到角色等等。

這些概念也不需要記,只需要知道有用戶角色和權(quán)限之間的關(guān)系即可。

ABAC(基于屬性的訪問(wèn)控制)則突破靜態(tài)授權(quán)限制,通過(guò)多維屬性(用戶屬性、資源屬性、環(huán)境屬性)動(dòng)態(tài)決策權(quán)限,來(lái)動(dòng)態(tài)判斷主體是否允許訪問(wèn)。例如“僅允許銷(xiāo)售部員工在工作時(shí)間在內(nèi)網(wǎng)訪問(wèn)客戶數(shù)據(jù)”的規(guī)則。

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》
這種權(quán)限模型更適合權(quán)限規(guī)則變化頻繁、粒度細(xì)致的平臺(tái),比如內(nèi)容平臺(tái)、銷(xiāo)售系等等。但需要復(fù)雜的屬性管理系統(tǒng)支撐,實(shí)施成本也比較高。

ACL(訪問(wèn)控制列表)是最基礎(chǔ)的「扁平模型」資源上維護(hù)著一張?jiān)L問(wèn)列表,記錄哪些用戶或角色有訪問(wèn)權(quán)限,如 “用戶 A 可編輯文檔,用戶 B 僅能查看”。也常用于微服務(wù)架構(gòu)中某些獨(dú)立資源或文件系統(tǒng)的控制,如Linux文件系統(tǒng)的讀寫(xiě)權(quán)限設(shè)置(如-rw-r--r--)。

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》

除了上述三種模型,還有一種在國(guó)內(nèi)也較常見(jiàn)但多數(shù)產(chǎn)品經(jīng)理不直接接觸的資源訪問(wèn)管理(RAM)模型,它主要應(yīng)用于公有云平臺(tái)(如阿里云、華為云、騰訊云)實(shí)現(xiàn)多租戶隔離,用于控制資源級(jí)別的訪問(wèn)權(quán)限。除非你負(fù)責(zé)的是資源服務(wù)類(lèi)系統(tǒng),否則在日常產(chǎn)品設(shè)計(jì)中很少用到,這里不做展開(kāi)。

值得注意的是,這些權(quán)限模型并非非此即彼。實(shí)際項(xiàng)目中,混合使用反而更常見(jiàn):以 RBAC 管理功能權(quán)限,通過(guò)角色快速分配操作資格;用 ABAC 實(shí)現(xiàn)數(shù)據(jù)權(quán)限的動(dòng)態(tài)控制,根據(jù)用戶屬性和環(huán)境條件靈活調(diào)整訪問(wèn)范圍;最后用 ACL 補(bǔ)充特殊場(chǎng)景的個(gè)性化需求,如臨時(shí)開(kāi)放特定用戶的某項(xiàng)權(quán)限。根據(jù)業(yè)務(wù)復(fù)雜度合理組合模型,既能避免過(guò)度設(shè)計(jì)帶來(lái)的成本浪費(fèi),也能確保權(quán)限系統(tǒng)適應(yīng)長(zhǎng)期業(yè)務(wù)發(fā)展。

三、從 0 到 1 設(shè)計(jì)流程:全階段實(shí)操指南

產(chǎn)品設(shè)計(jì)是從需求到落地的系統(tǒng)化工程,一個(gè)高質(zhì)量的權(quán)限系統(tǒng)也不是一步到位堆出來(lái)的,而是從抽象到具體的分階段設(shè)計(jì)、逐步迭代落地的。尤其在中后臺(tái)產(chǎn)品中,從 0 到 1 的權(quán)限設(shè)計(jì)大致可以拆解為五個(gè)關(guān)鍵階段:目標(biāo)定義、權(quán)限建模、規(guī)則制定、技術(shù)落地和上線校驗(yàn)。結(jié)構(gòu)化流程后,有個(gè)好處是可以快速對(duì)齊方向、降低試錯(cuò)成本。

Step 1:需求定義,清晰目標(biāo)

對(duì)于產(chǎn)品而言老生常談的話題:做之前總得明確要「做什么」。調(diào)研形式包含于但不限于通過(guò)用戶訪談、問(wèn)卷調(diào)研和競(jìng)品分析,需要識(shí)別用戶痛點(diǎn)和和未被滿足的需求。

對(duì)于權(quán)限設(shè)計(jì)而言則需要明確為什么需要權(quán)限系統(tǒng)、權(quán)限設(shè)計(jì)解決什么問(wèn)題。在調(diào)研中,針對(duì)不緊急的需求可以放低優(yōu)先級(jí),先明確最小可行產(chǎn)品(MVP)的核心功能。還需確認(rèn)系統(tǒng)中需要權(quán)限的對(duì)象與場(chǎng)景(如功能訪問(wèn)、數(shù)據(jù)隔離等)以及明確安全性、靈活性、可運(yùn)維性的基本訴求。要拿到這些內(nèi)容和信息,可以采取三步訪談法:

  • ① 決策者:核心業(yè)務(wù)流程中的權(quán)限卡點(diǎn)(如審批流節(jié)點(diǎn)控制)
  • ② 用戶端:不同角色的功能使用痛點(diǎn)(如客服是否需要查看訂單金額)
  • ③ 技術(shù)側(cè):現(xiàn)有系統(tǒng)的權(quán)限兼容度評(píng)估(歷史數(shù)據(jù)遷移方案,如果是新系統(tǒng)那就恭喜了)

通過(guò)調(diào)研,可以分析角色邊界和使用行為,最后輸出一份交付物:《權(quán)限需求矩陣表》。格式參考如下:

角色(主體) 模塊(客體) 可執(zhí)行操作(操作) 備注說(shuō)明
系統(tǒng)管理員
用戶管理
查看用戶、創(chuàng)建用戶、編輯用戶、刪除用戶
擁有全權(quán)限
部門(mén)主管
用戶管理
查看本部門(mén)用戶、編輯本部門(mén)用戶信息
限定數(shù)據(jù)范圍
員工
用戶管理
查看個(gè)人信息、修改個(gè)人密碼
僅限本人

Step 2: 方案設(shè)計(jì),權(quán)限建模

權(quán)限建模是以結(jié)構(gòu)化方式定義用戶、角色與資源訪問(wèn)關(guān)系的核心過(guò)程。一方面,需要結(jié)合實(shí)際業(yè)務(wù)場(chǎng)景,選擇合適的前文說(shuō)的三種權(quán)限控制模型,如 RBAC(基于角色的訪問(wèn)控制)、ABAC(基于屬性的訪問(wèn)控制)或混合模型(RBAC + ABAC / ACL 等)。另一方面,權(quán)限設(shè)計(jì)相較于業(yè)務(wù)功能更具抽象性,往往難以在早期形成直觀認(rèn)知,純文字解釋和評(píng)審時(shí)極其累。因此,為提升協(xié)作效率,建議以權(quán)限邏輯圖、權(quán)限流程圖等方式進(jìn)行可視化表達(dá),形式不限,只要能幫助理解即可。下圖是一個(gè)訂單的簡(jiǎn)單權(quán)限模型例子。

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》
毫無(wú)疑問(wèn),建模工作的質(zhì)量,直接決定了后續(xù)權(quán)限配置和前端控制等實(shí)現(xiàn)過(guò)程的復(fù)雜度,也是決定權(quán)限系統(tǒng)能否穩(wěn)定演進(jìn)、易于維護(hù)的關(guān)鍵基礎(chǔ)。

Step 3: 細(xì)節(jié)明確,規(guī)則制定

在完成權(quán)限建模后,僅是確定了基本結(jié)構(gòu)和方向,真正落地還需進(jìn)一步制定詳細(xì)規(guī)則,明確權(quán)限的粒度、沖突處理方式以及運(yùn)行機(jī)制。

以“游戲訂單數(shù)據(jù)”為例,權(quán)限細(xì)化需區(qū)分為功能權(quán)限數(shù)據(jù)權(quán)限兩類(lèi)。功能權(quán)限可按頁(yè)面級(jí)與操作級(jí)拆分:如普通客服僅能點(diǎn)擊“查看訂單詳情”,而游戲管理員(GM)則額外擁有“導(dǎo)出訂單”按鈕。數(shù)據(jù)權(quán)限則按游戲項(xiàng)目、數(shù)據(jù)行或字段控制,例如客服僅能查看所屬渠道/已授權(quán)項(xiàng)目的訂單,某些敏感字段(如用戶手機(jī)號(hào)、支付金額)則可能要求二次認(rèn)證,或直接做字段脫敏處理。

關(guān)于權(quán)限沖突與優(yōu)先級(jí),應(yīng)明確以下三條規(guī)則

  • ① 顯式權(quán)限優(yōu)先于繼承權(quán)限,比如用戶單獨(dú)被賦予“導(dǎo)出”權(quán)限,應(yīng)高于角色默認(rèn)限制;
  • ② 角色支持層級(jí)繼承,上級(jí)角色自動(dòng)包含下級(jí)全部權(quán)限,降低冗余配置成本;
  • ③ 用戶擁有多個(gè)角色時(shí),采用“權(quán)限并集”原則,合并所有可用操作。

如果是針對(duì)內(nèi)部系統(tǒng)的權(quán)限設(shè)計(jì),還會(huì)涉及到分配和回收。比如權(quán)限分配流程應(yīng)可審批與可審計(jì)(保命功能),一些關(guān)鍵權(quán)限(如導(dǎo)出、刪除等)建議綁定內(nèi)部已有審批流程,需負(fù)責(zé)人審批后方可生效,哪怕是郵件也好過(guò)沒(méi)有。權(quán)限回收機(jī)制則需覆蓋人員離職、轉(zhuǎn)崗等場(chǎng)景,觸發(fā)時(shí)自動(dòng)剝離原權(quán)限,避免遺留安全隱患。

在完成了上述后臺(tái)邏輯設(shè)計(jì)的同時(shí),也需定義權(quán)限不足的前端交互規(guī)范。常見(jiàn)方式包括:無(wú)權(quán)限操作的按鈕隱藏或禁用,僅展示“提交申請(qǐng)”類(lèi)引導(dǎo);若嘗試越權(quán)請(qǐng)求,則返回結(jié)構(gòu)化錯(cuò)誤碼,頁(yè)面跳轉(zhuǎn)至 403 錯(cuò)誤頁(yè)并提示清晰說(shuō)明。

至此,通過(guò)這一階段的規(guī)則細(xì)化,權(quán)限系統(tǒng)才能實(shí)現(xiàn)“能運(yùn)行、能控制、能演進(jìn)”,真正具備產(chǎn)品級(jí)的可用性與可維護(hù)性。

Step 4:開(kāi)發(fā)落地,技術(shù)協(xié)作

權(quán)限設(shè)計(jì)走到開(kāi)發(fā)階段,重點(diǎn)是將抽象模型轉(zhuǎn)化為系統(tǒng)可識(shí)別的數(shù)據(jù)結(jié)構(gòu)與鑒權(quán)邏輯。產(chǎn)品經(jīng)理在這個(gè)過(guò)程一方面需要參與開(kāi)發(fā)評(píng)審,另外一方面也需要在過(guò)程中遇到問(wèn)題及時(shí)處理。產(chǎn)品與技術(shù)之間的協(xié)作尤為關(guān)鍵,需要聚焦權(quán)限數(shù)據(jù)結(jié)構(gòu)落地、接口鑒權(quán)邏輯明確和前端動(dòng)態(tài)渲染規(guī)則,確保模型從理論轉(zhuǎn)化為可執(zhí)行的技術(shù)方案。

以 RBAC 模型為例,權(quán)限數(shù)據(jù)結(jié)構(gòu)通常包括三類(lèi)核心關(guān)系:用戶與角色、角色與權(quán)限、權(quán)限與資源操作。產(chǎn)品需與后端明確每種權(quán)限粒度的字段設(shè)計(jì),比如功能權(quán)限用permission_code,數(shù)據(jù)權(quán)限關(guān)聯(lián)業(yè)務(wù)維度字段如game_idchannel_id

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》

接口層需統(tǒng)一接入權(quán)限校驗(yàn)中間件,由后端根據(jù)請(qǐng)求用戶的角色,判定其是否具備訪問(wèn)目標(biāo)接口的權(quán)限。例如:訪問(wèn)「導(dǎo)出訂單數(shù)據(jù)」接口時(shí),需綁定權(quán)限,未授權(quán)則直接攔截返回錯(cuò)誤信息。

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》
前端則需根據(jù)后端返回的用戶權(quán)限動(dòng)態(tài)渲染界面。具備權(quán)限的用戶看到「導(dǎo)出」按鈕,無(wú)權(quán)限者則按鈕隱藏或置灰處理。數(shù)據(jù)權(quán)限前端一般不需要關(guān)注,后端返回時(shí)直接根據(jù)權(quán)限過(guò)濾即可。產(chǎn)品在此階段主要需明確權(quán)限字段與 UI 控件的映射規(guī)則,在方案的基礎(chǔ)上查漏補(bǔ)缺,確保交互體驗(yàn)不依賴(lài)“試錯(cuò)”方式來(lái)驗(yàn)證權(quán)限效果。

Step 5:測(cè)試上線,驗(yàn)證方案

權(quán)限系統(tǒng)設(shè)計(jì)完成后,上線前的測(cè)試環(huán)節(jié)至關(guān)重要。在產(chǎn)品參與的測(cè)試用例評(píng)審時(shí),需要明確讓測(cè)試覆蓋正向場(chǎng)景、負(fù)向場(chǎng)景和邊界場(chǎng)景。

  • ① 正向場(chǎng)景:正常角色權(quán)限范圍內(nèi)的操作是否暢通
  • ② 負(fù)向場(chǎng)景:越權(quán)訪問(wèn)(功能 / 數(shù)據(jù))是否被正確攔截
  • ③ 邊界場(chǎng)景:角色變更時(shí)的權(quán)限繼承與回收邏輯(如員工轉(zhuǎn)崗 / 離職)

在完成測(cè)試后的產(chǎn)品驗(yàn)收里,產(chǎn)品也需要確保主線可被驗(yàn)證。只有通過(guò)多維驗(yàn)證,權(quán)限系統(tǒng)才真正具備可上線、可維護(hù)的穩(wěn)定性,可上線交付。

四、實(shí)戰(zhàn)案例庫(kù):負(fù)責(zé)的兩個(gè)產(chǎn)品案例

產(chǎn)品一:X 項(xiàng)目管理軟件

X 是一款面向中大型企業(yè)的項(xiàng)目管理軟件,支持多項(xiàng)目并行協(xié)作、任務(wù)分派、進(jìn)度跟蹤及成員權(quán)限控制等關(guān)鍵功能。系統(tǒng)用戶主要包括:系統(tǒng)管理員、項(xiàng)目管理員、項(xiàng)目成員,覆蓋了從配置管理到實(shí)際執(zhí)行的多層次權(quán)限需求。

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》

在權(quán)限設(shè)計(jì)方面,X 的典型需求包括:

  • 功能權(quán)限:如創(chuàng)建任務(wù)、查看項(xiàng)目、導(dǎo)出報(bào)表;
  • 數(shù)據(jù)權(quán)限:限定用戶僅能訪問(wèn)其參與或負(fù)責(zé)的項(xiàng)目數(shù)據(jù);
  • 迭代管理權(quán)限:如成員是否有權(quán)創(chuàng)建、修改或刪除項(xiàng)目迭代;
  • 工作項(xiàng)權(quán)限:這是權(quán)限系統(tǒng)中最復(fù)雜的部分,工作項(xiàng)包括需求、缺陷、任務(wù)等類(lèi)型,支持對(duì)這些對(duì)象進(jìn)行細(xì)粒度控制,包括是否允許新建、查看、編輯、刪除等操作。同時(shí)還支持對(duì)工作項(xiàng)屬性級(jí)的權(quán)限控制(如是否能編輯“優(yōu)先級(jí)”字段)。

由于角色多樣、操作顆粒豐富、權(quán)限組合復(fù)雜,X 項(xiàng)目管理軟件成為權(quán)限模型選型與實(shí)踐的典型案例。系統(tǒng)支持用戶、用戶組、部門(mén)和角色等多種主體類(lèi)型,數(shù)據(jù)權(quán)限則細(xì)化至項(xiàng)目、模塊、工作項(xiàng)列(屬性)和工作項(xiàng)行(類(lèi)型)四個(gè)維度。

以模塊權(quán)限為例,如迭代模塊、缺陷模塊等,既可以直接與角色綁定,也支持按用戶組或部門(mén)進(jìn)行批量授權(quán),例如為“產(chǎn)品組”“開(kāi)發(fā)組”等分配模塊權(quán)限。同時(shí),系統(tǒng)支持根據(jù)不同數(shù)據(jù)權(quán)限范圍,配置相應(yīng)的操作權(quán)限組合,實(shí)現(xiàn)靈活精細(xì)的訪問(wèn)控制策略。

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》

最終,X 系統(tǒng)采用以 RBAC(基于角色的訪問(wèn)控制)為核心,輔以 ACL(訪問(wèn)控制列表)機(jī)制的混合模型:RBAC 提供統(tǒng)一的權(quán)限框架與角色管理能力,ACL 用于處理個(gè)別用戶的特例授權(quán),從而在通用性與靈活性之間取得平衡。

產(chǎn)品二:Y持續(xù)集成和持續(xù)交付軟件

Y 是一款企業(yè)部署的 CI/CD 工具,服務(wù)于內(nèi)部研發(fā)流程,支持代碼的自動(dòng)構(gòu)建、測(cè)試與部署,以保障持續(xù)交付的效率與穩(wěn)定性。系統(tǒng)支持創(chuàng)建多個(gè)項(xiàng)目,每個(gè)項(xiàng)目配置項(xiàng)目管理員項(xiàng)目成員兩類(lèi)基礎(chǔ)角色,并允許自定義角色,以滿足不同團(tuán)隊(duì)的權(quán)限差異化管理需求。

該權(quán)限模型是以RBAC 為基礎(chǔ)框架,輔以 ACL 控制,實(shí)現(xiàn)了角色驅(qū)動(dòng)、范圍繼承、細(xì)粒度授權(quán)的復(fù)合權(quán)限體系。各類(lèi)角色可直接綁定功能權(quán)限,如創(chuàng)建流水線、觸發(fā)構(gòu)建、查看日志等。系統(tǒng)的核心資源為流水線,不僅涉及功能操作控制,也需對(duì)其數(shù)據(jù)訪問(wèn)權(quán)限進(jìn)行精細(xì)化管理,主要體現(xiàn)為團(tuán)隊(duì)級(jí)個(gè)人級(jí)的雙層控制。

《最全產(chǎn)品權(quán)限設(shè)計(jì)指南:從入門(mén)到上線,一篇就夠》

每條流水線默認(rèn)歸屬于創(chuàng)建者個(gè)人,但系統(tǒng)允許將其轉(zhuǎn)移至團(tuán)隊(duì)名下,并通過(guò)分組標(biāo)簽進(jìn)行進(jìn)一步分類(lèi)管理。分組可配置訪問(wèn)權(quán)限(如只讀、可編輯、可觸發(fā)),標(biāo)簽則作為輔助維度,用于權(quán)限篩選與展示優(yōu)化。

權(quán)限繼承邏輯遵循“項(xiàng)目 > 分組 > 流水線”的層級(jí)關(guān)系,粒度越小優(yōu)先級(jí)越高。流水線默認(rèn)繼承項(xiàng)目權(quán)限,自定義加入分組后則繼承分組權(quán)限。如需更高控制精度,也支持對(duì)單條流水線配置專(zhuān)屬權(quán)限,如查看、編輯、執(zhí)行等操作的獨(dú)立授權(quán)。

因此,Y 系統(tǒng)的權(quán)限體系通過(guò) RBAC 為主、ACL 為輔的設(shè)計(jì),既保證了角色管理的統(tǒng)一性,又兼顧了流水線級(jí)別的精細(xì)化控制,滿足 CI/CD 工具權(quán)限設(shè)計(jì)需求。

結(jié)語(yǔ)

權(quán)限設(shè)計(jì)不是技術(shù)附屬,而是產(chǎn)品可控、可擴(kuò)展的基礎(chǔ)設(shè)施。從模型選型、規(guī)則制定到開(kāi)發(fā)協(xié)作、測(cè)試驗(yàn)證,每一步都關(guān)乎系統(tǒng)的長(zhǎng)期可維護(hù)性。這篇指南希望為你搭建起清晰的權(quán)限認(rèn)知框架,避開(kāi)常見(jiàn)陷阱,減少返工。如果你正面臨權(quán)限相關(guān)的設(shè)計(jì)挑戰(zhàn),愿本文能成為你落地實(shí)踐中的一份參考。

專(zhuān)欄作家

零度Pasca,公眾號(hào):進(jìn)擊的零度,人人都是產(chǎn)品經(jīng)理專(zhuān)欄作家。關(guān)注前沿技術(shù)趨勢(shì),理性數(shù)據(jù)主義者;熱愛(ài)閱讀,堅(jiān)信輸出是沉淀輸入的最好方式,致力于用產(chǎn)品思維解決用戶共性問(wèn)題。

本文由作者原創(chuàng)投稿/授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 寫(xiě)的很好大佬牛逼

    來(lái)自廣東 回復(fù)
  2. 大佬催更

    來(lái)自四川 回復(fù)
  3. 寫(xiě)得很細(xì),值得一看

    來(lái)自浙江 回復(fù)