應(yīng)用層數(shù)據(jù)安全管控實(shí)踐—權(quán)限模型篇
權(quán)限的本質(zhì)是人與人之間的信任建立和打散,權(quán)限管控的是人與權(quán)限的關(guān)系,本文以應(yīng)用層數(shù)據(jù)安全管控實(shí)踐為例,探討權(quán)限模型的迭代歷程和應(yīng)用實(shí)踐,希望對(duì)你有所啟發(fā)。
一、權(quán)限模型迭代概覽
權(quán)限的本質(zhì)其實(shí)是人與人之間信任關(guān)系的建立和打散,權(quán)限管控的核心是聲明人和權(quán)限的關(guān)系??v觀行業(yè)發(fā)展,權(quán)限管控模型先后經(jīng)歷了以ACL模型為代表的1.0時(shí)代和以RBAC模型為代表的2.0時(shí)代,現(xiàn)在正式邁入以TRFAC模型為代表的3.0代。
圖表1:基礎(chǔ)權(quán)限模型示意圖
【基礎(chǔ)權(quán)限模型介紹】注釋:
[1] ACL模型:即Access Control List,訪問控制列表,用戶與權(quán)限直接關(guān)聯(lián),直接維護(hù)列表中用戶與資源的關(guān)系從而達(dá)到權(quán)限管控的目的。
[2] RBAC模型:即Role-Based Access Control,基于角色的訪問控制,RBAC模型則是角色與權(quán)限進(jìn)行關(guān)聯(lián),用戶成為相應(yīng)的角色而獲得對(duì)應(yīng)的權(quán)限。
[3] TRFAC模型:即target-resource-factor-act Control,基于“對(duì)象-資源-條件-行為”的權(quán)限控制,TRFAC模型描述了“XX對(duì)象(人/應(yīng)用/組織/角色等)對(duì) XX資源(頁(yè)面/菜單/按鈕/數(shù)據(jù)等)在 XX條件/因素(城市=北京等)下?lián)碛?XX行為類型(增刪改查等)的權(quán)限”。
二、權(quán)限模型在產(chǎn)品設(shè)計(jì)中的應(yīng)用
圖表2:基于權(quán)限模型設(shè)計(jì)的XX權(quán)限產(chǎn)品DEMO
三、TRFAC模型實(shí)踐
數(shù)據(jù)產(chǎn)品天然存在人和資源之間的復(fù)雜關(guān)系,傳統(tǒng)權(quán)限模型,無論是ACL模型還是RBAC模型,都不能很好地聲明人和權(quán)限的關(guān)系。以下就以兩個(gè)典型案例的解決方案,來闡述TRFAC模型的應(yīng)用實(shí)踐。
[ 案例1 ]
某業(yè)務(wù)團(tuán)隊(duì)需要實(shí)現(xiàn)報(bào)表權(quán)限控制(維度權(quán)限)需求。業(yè)務(wù)邏輯并不復(fù)雜,但是人和資源的權(quán)限關(guān)系比較細(xì),傳統(tǒng)ACL模型和RBAC模型均不能滿足,因此,我們采用TRFAC模型來實(shí)現(xiàn)。
首先,鑒權(quán)主體是人,資源為報(bào)表;然后,行級(jí)別權(quán)限控制,可以理解為在正常資源關(guān)系中,新增了“維度值”附屬條件,比如,當(dāng)報(bào)表資源滿足“城市=北京”的條件時(shí),用戶XX擁有對(duì)該報(bào)表的權(quán)限。所以我們實(shí)現(xiàn)路徑如下:
圖表3:行級(jí)別權(quán)限實(shí)現(xiàn)邏輯圖
圖表4:行級(jí)別權(quán)限鑒權(quán)流程示意圖
思考:為什么不把報(bào)表中每一行數(shù)據(jù)都當(dāng)作是資源注冊(cè)到權(quán)限中心,這樣行級(jí)別權(quán)限其實(shí)只是一次更細(xì)粒度的資源鑒權(quán),為什么要把維度值當(dāng)作是條件呢?
[ 案例2 ]
某某智能數(shù)倉(cāng)平臺(tái)(其實(shí)就是指標(biāo)/維度生產(chǎn)維護(hù)服務(wù)平臺(tái)),需要權(quán)限中心幫助實(shí)現(xiàn)功能和數(shù)據(jù)權(quán)限控制。系統(tǒng)簡(jiǎn)易架構(gòu)圖如下:
圖表5:XX智能數(shù)倉(cāng)平臺(tái)系統(tǒng)架構(gòu)圖
該智能數(shù)倉(cāng)平臺(tái)兼具功能和數(shù)據(jù)權(quán)限管控需求,其中功能權(quán)限包括業(yè)務(wù)線/業(yè)務(wù)域/業(yè)務(wù)過程的管理和維護(hù),修飾詞的管理和維護(hù),指標(biāo)/維度的錄入和管理維護(hù);數(shù)據(jù)權(quán)限包括“指標(biāo)+維度”的數(shù)據(jù)探查權(quán)限,底層庫(kù)表的數(shù)據(jù)讀取權(quán)限,具體組織形式如下圖所示:
圖表6:XX智能數(shù)倉(cāng)平臺(tái)功能權(quán)限管理體系設(shè)計(jì)
圖表7:XX智能數(shù)倉(cāng)平臺(tái)角色管控體系
在業(yè)務(wù)邏輯上比較復(fù)雜,既有功能權(quán)限,又有數(shù)據(jù)權(quán)限,同時(shí)資源之間還有歸屬和繼承關(guān)系,同時(shí)還有較為豐富的角色體系,這時(shí)候單純用ACL或者RBAC模型都無法全部滿足需求,因此我們采用TRFAC模型來實(shí)現(xiàn):
圖表8:角色-權(quán)限實(shí)現(xiàn)邏輯圖
案例2小結(jié)
- 業(yè)務(wù)線、業(yè)務(wù)域、業(yè)務(wù)過程在TRFAC模型看來都是“資源”:平臺(tái)超管角色對(duì)業(yè)務(wù)線擁有管理維護(hù)權(quán)限,業(yè)務(wù)線管理員對(duì)業(yè)務(wù)域擁有管理維護(hù)權(quán)限,業(yè)務(wù)域管理員對(duì)業(yè)務(wù)過程擁有管理維護(hù)權(quán)限
- 指標(biāo)/維度的探查權(quán)限屬于數(shù)據(jù)權(quán)限,既能以角色-權(quán)限的方式來管控,也能以人-資源-權(quán)限的方式管控
- 資源需要依附對(duì)象,也就是觸發(fā)鑒權(quán)動(dòng)作的對(duì)象
- 以系統(tǒng)為依附對(duì)象,即進(jìn)入系統(tǒng)時(shí)對(duì)所有資源都觸發(fā)一遍鑒權(quán)詢問。優(yōu)點(diǎn)是業(yè)務(wù)邏輯簡(jiǎn)單,不用設(shè)計(jì)復(fù)雜的權(quán)限關(guān)系;缺點(diǎn)是鑒權(quán)響應(yīng)速度和性能較差
- 以菜單/模塊/頁(yè)面為依附對(duì)象,即進(jìn)入相應(yīng)模塊或者頁(yè)面時(shí)觸發(fā)鑒權(quán)詢問。優(yōu)點(diǎn)是無論是權(quán)限關(guān)系復(fù)雜度還是鑒權(quán)速度和性能都比較均衡;缺點(diǎn)是復(fù)雜或者細(xì)粒度業(yè)務(wù)需求滿足不了
- 以具體的觸發(fā)按鈕為依附對(duì)象,即點(diǎn)擊XX按鈕時(shí)觸發(fā)鑒權(quán)詢問。優(yōu)點(diǎn)是自由度和靈活性高,復(fù)雜業(yè)務(wù)需求容易滿足,且性能優(yōu)異;缺點(diǎn)是管理維護(hù)成本高,不通用,迭代更新成本高
本文由 @明明 原創(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ā)揮!