應(yīng)用層數(shù)據(jù)安全管控實(shí)踐—權(quán)限模型篇

0 評(píng)論 4313 瀏覽 20 收藏 8 分鐘

權(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資源(頁面/菜單/按鈕/數(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ù)倉平臺(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ù)倉平臺(tái)系統(tǒng)架構(gòu)圖

該智能數(shù)倉平臺(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)限,底層庫表的數(shù)據(jù)讀取權(quán)限,具體組織形式如下圖所示:

圖表6:XX智能數(shù)倉平臺(tái)功能權(quán)限管理體系設(shè)計(jì)

圖表7:XX智能數(shù)倉平臺(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)速度和性能較差
  • 以菜單/模塊/頁面為依附對(duì)象,即進(jìn)入相應(yīng)模塊或者頁面時(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ù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!