成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

融合模型權限管理設計方案

原創 精選
開發
本文重點介紹被 INCITS(國際信息技術標準委員會) 采納的標準 RBAC 模型。

作者 | ?楊子國

名詞解釋

ITAM:ITAM 是對 IT 辦公資產--實物資產 (如筆記本電腦)、軟件資產 (如 Office365)--進行生命周期管理的系統。

ITAM-Auth:ITAM 系統的鑒權服務。

ITAM-Data:ITAM 系統的數據服務。

SaaS:軟件即服務(英語:Software as a Service,縮寫:SaaS),一種軟件交付模式。在這種交付模式中,軟件僅需通過網絡,不須經過傳統的安裝步驟即可使用,軟件及其相關的數據集中托管于云端服務。

ServiceNow:ServiceNow 是一家美國軟件公司,總部位于加州圣克拉拉,該公司開發了一個云計算平臺,幫助企業管理企業 IT 工作流。ServiceNow 由弗雷德·盧迪于 2003 年創立,在紐約證券交易所上市,是羅素 1000 指數和標準普爾 500 指數的組成股。2018 年,《福布斯》雜志將其評為全球最具創新性公司的第一名。

背景

本方案梳理了業界主流權限模型,IT Saas 化中權限管理要解決的問題,參考了公司內外、國內外的一些權限設計方案,結合 RBAC、ABAC 模型提出了 ITAM 融合模型權限管理方案。

主流權限模型

參考了多個系統的權限實現后,總結出公用的權限理論模型,具體到每個系統的實現會有一些改造和優化,本部分介紹工業界廣泛使用的權限模型。

概述

主體:一個訪問行為的發起方,此處簡化理解,假設都是用戶

客體:訪問行為的施加對象,如頁面、功能、數據

圖片

ACL (Access-Control List 訪問控制列表)

Subject:主體,訪問方,可以是人也可以是系統、設備等

Action:訪問的具體動作,如 Create、Read、Edit...

Object:客體,被訪問方,可以是系統中的某個條目、某個文件等

一種比較基礎的權限管控機制,簡單直接,常應用于操作系統中的文件系統。

圖片

MAC (Mandatory Access Control 強制訪問控制)

Subject:主體,訪問方,可以是人也可以是系統、設備等

Action:訪問的具體動作,如 Create、Read、Edit...

Object:客體,被訪問方,可以是系統中的某個條目、某個文件等

Attributes:在 Subject 和 Object 上均可能有多個 Attributes ,用于鑒權判斷的元數據

主體和客體會被分別賦予一個機密等級,訪問時雙向檢查主體和客體的等級是否匹配,常被應用于安全要求性高的領域,如軍事、金融、政府、計算機系統安全等,雙向鑒權時遵循 authorization rule,該 rule 的存儲位置和管理通常非常嚴格。

圖片

DAC (Discretionary Access Control 自主訪問控制)

Subject:主體,訪問方,可以是人也可以是系統、設備等

Action:訪問的具體動作,如 Create、Read、Edit...

Object:客體,被訪問方,可以是系統中的某個條目、某個文件等

Grant:轉授權行為,Subject 1 可對 Object 執行的全部或部分 Action 轉授給 Subject 2

自主訪問控制簡單理解是權限 Subject 可將自己擁有的權限轉移給其他主體,通常是為了解決權限分配靈活度的問題,但是在 B 端系統里往往不會僅僅采用 DAC 這一種權限模型(比如會結合 MAC 模型),因為該模型會導致管理員無法掌控的權限擴散。

圖片

RBAC (Role Based Access Control 角色訪問控制)

RBAC 認為權限的本質是 Who 對 What 進行了 How 操作

User:主體,訪問方,代表系統中的用戶,但也可以是機器、網絡等 - Who

Object:客體,被訪問方,可以是系統中的某個菜單、按鈕、數據記錄、API 等 - What

Operation:系統中用戶可執行的某個動作 - How

Permissions:權限,代表可向 RBAC 保護下的 Object 執行 Operation (What + How)

Role:角色,代表組織內一些職責及該職責下的用戶擁有某些指定的權限

Session:會話,會話由一個用戶觸發,同時會話激活會話關聯的一個或多個 Role

本文重點介紹被 INCITS(國際信息技術標準委員會) 采納的標準 RBAC 模型

標準 RBAC 分為 4 個子模型:

RBAC0 - Core RBAC

圖片

RBAC1 - Hierarchical RBAC

圖片

一般繼承:角色之間的是一個絕對偏序的繼承關系(有向無環,成環的角色繼承無意義),這個設計比單一的樹狀繼承更自由,適用于角色權限有繼承需求但又不是嚴格的上下層級關系的權限場景。

圖片

圖片

RBAC2 - Constrained RBAC

圖片

RBAC3 = RBAC 1 + RBAC 2

RBAC3 是 RBAC1 和 RBAC2 的合集,既包含了角色繼承也包含了相關約束。

優點:能力最強大。

缺點:4 種模型中最復雜的模型,管理成本較高。

總體上,RBAC 被認為滿足了三個重要權限原則:

  • 最小權限:用戶僅在觸發會話動作時獲取到其所在角色,該角色定義了完成該動作所需的最小權限。
  • 權限抽象:可結合業務抽象出具體的權限行為,如發表評論、上傳附件,而不是簡單的 讀、寫、查。
  • 職責分離:角色本身表征了職責,加上 RBAC 支持角色和角色間的互斥機制,實現高風險動作分治。

對標準 RBAC 的擴展

  • 面向單個用戶授權時的管理成本:可以跳過 Role 直接對用戶授權
  • 面向大批量用戶授權時的管理成本:Group 也可以被分配到 Role 中
  • 面向維護 Role 的管理成本:用戶在 Role 中可進行權限裁剪(代表這個用戶僅擁有這個 Role 的部分權限)、可復制 Role 等等
  • 和其他權限模型的結合:
  • 和 DAC 、MAC 的結合
  • 和 ABAC 的結合

ABAC (Attribute Based Access Control 屬性訪問控制)

Subject:主體,訪問方,代表系統中的用戶,但也可以是機器、網絡等

Object:客體,被訪問方,可以是系統中的某個文件、設備、數據庫記錄等

Operation:系統中主體對客體請求執行的功能/行為,可包括 read、write、edit、delete 等

Attributes:屬性,Subject、Object、Operation 和 Environment Condition 都有屬性,屬性是一對鍵值

Policy:一系列由屬性和屬性值構成的規則或關系,通過該規則/關系可判斷一個訪問能否被允許

Environment Conditions:可被識別的環境條件,訪問行為發生的環境,通常可以是時間、地點、IP、設備、操作系統、風險級別等

ABAC 是建立在 Subject 屬性、Object 屬性、環境屬性及訪問 Policy 之上的細粒度權限管控,ABAC 能做到只有符合特定屬性的 Subject 在特定條件下可以對符合特定屬性的 Object 執行某權限行為。

圖片

下一代權限模型探索 - NGAC

在 DAC、MAC、RBAC、ABAC 這些主流權限模型之外,還存在大量其他權限模型(如 LBAC、GBAC、CBAC、OrBAC、RAdAC...),但目前還沒有一種權限模型得到了工業界的廣泛采納。

學術界已經有了一些關于下一代權限模型的研究成果。

NIST(美國國家標準技術研究所)在 2019 年提出了 NGAC(Next Generation Access Control 下一代訪問控制模型),提出這是區別于現有權限模型之外的一種全新模型且可以廣泛兼容當前數字生態里的各種權限場景。

從下圖來看更像是 RBAC 思路和 ABAC 思路的結合,結合點是 用戶 —— 角色的關系不再人為分配,而是根據 Policy 自動分配,用戶以角色身份進行權限行為時再過一遍 ABAC 的規則判斷。

典型應用場景:Alice 只有在工作日的上午 10:00-18:00 在倫敦的辦公室網絡下(role-based permission policy)才能以財務的角色訪問并修改訂單系統里的數據 (role-based permission policy)

圖片

結論

圖片

沒有哪種權限模型是完美的,重要的是如何和業務結合,考慮安全性、擴展性、靈活性、易用性、管理成本、合規等因素并取得均衡,這個過程往往是最復雜的。

方案參考

帶著上述目標,主要看了 ServiceNow 的權限實現方案,從基本思路、可借鑒設計、方案缺點三方面做如下分析。

ServiceNow

基本思路

ServiceNow 權限管理采用 RBAC1+ACL 的方式,ACL 控制 ObjectType 的 Operation 訪問,通過 Role、Condition、Script 進行動態校驗。

權限模型

圖片

用戶和用戶組

用戶基本信息管理,所屬部門,一個用戶可以加入多個用戶組,一個用戶可通過設置代理來行使本用戶的系統權限;

用戶組包含多個用戶,用戶組之間可以繼承,子用戶組繼承父用戶組的權限。

角色

角色的使用是被動的,Module 在配置時可以關聯角色,UI Action 可以關聯角色,ACL 配置可以關聯角色,角色存在繼承關系,子角色繼承父角色的權限。

應用和資源

ServiceNow 內部區分不同的應用,不同的應用有不同的資源、角色、權限設置,應用(Application)被抽象為一組可安裝的組件資源,資源包括了 Table(數據表)、Dictionary(數據列)、API 接口(REST_Endpoint)、Menu(菜單)、Module(頁面組件)、UI Page(獨立頁面)、UI Action(頁面按鈕)等,其中菜單、頁面組件、頁面按鈕使用 RBAC 權限模式;數據表、數據列、API 接口、獨立頁面使用 ACL 鑒權。

比較特殊的,Table 在 ACL 鑒權的同事,有配置 Application Access,即每個 table 按照應用來設置操作權限。

ACL 鑒權的 Object 和 Operation 類型如下所示。

圖片

圖片

組件(Module)有多種訪問方式,以 ListRecord 和 URL 訪問為主,如下圖所示。ListRecord 表示訪問一個表的記錄,URL 訪問方式表示通過 URL-Get 參數方式訪問數據。Module 的鑒權通過配置關聯的 Role 來實現。

Module 的 LinkType(訪問方式)有 13 種,ListRecord 方式可以通過 Filter 指定默認的過濾查詢條件,但不是作為數據行范圍權限來使用的,進入具體頁面后,過濾條件可以清除。

圖片

圖片

圖片

RBAC 鑒權

需要鑒權的資源在配置時關聯需要的角色,角色的使用是被動的,Module 在配置時可以關聯角色,UI Action 可以關聯角色,ACL 配置可以關聯角色。

用戶或者用戶組在配置時選擇關聯的角色。

ACL 鑒權

ACL 鑒權指定 Object 的 Operation 需要鑒權,通過三種方式進行鑒權

  1. Role
  2. Condition
  3. Script

Table 的增刪改查、字段的增刪改查都可以通過 ACL 來配置

ServiceNow 對 Table、Column 的 ACL 控制大部分都是 ReadOnly

圖片

可借鑒設計

  1. 資源的管理粒度細,所以權限的管控粒度、靈活性好;
  2. 針對不同的鑒權場景使用不同的鑒權模型;
  3. UI 層資源和權限的數據鏈接、各信息的 Link 跳轉設計細致;

缺點

  1. 用戶和用戶組的關聯缺乏靈活性,例如按照用戶屬性圈定一批用戶作為一個組;
  2. 權限配置比較分散,使用權限的地方散落在各個資源管理入口;
  3. ACL 的 Condition 配置功能簡陋,配置門檻高;
  4. 沒有考慮開放與集成場景的鑒權;
  5. 沒有數據范圍鑒權。

問題

  1. 權限管理的本質是對用戶訪問系統資源做權限控制,需要先定義好系統中的用戶、資源、權限;
  2. 用戶體量大、崗位流轉率高的情況下,要能高效、便捷的圈用戶、授權;
  3. 數據鑒權,包括數據行鑒權、列鑒權,數據權限高效授權、鑒權;
  4. 良好的業務擴展性;
  5. 權限管理和權限使用的前后端模塊劃分不一致,業務定義和工程定義不一致,例如前端是一個整體服務,后臺劃分了多個微服務,在權限管理、功能鑒權、數據鑒權時如何劃分和控制;
  6. 權限需要的特色功能:角色互斥,身份代理,權限前置依賴,權限審批流程,角色授權設置有效期,權限策略優先級。

目標

技術目標

  • 工作效率:用戶可以多快獲得應當具備的權限;
  • 鑒權效率:高性能保證鑒權不影響正常業務邏輯處理;
  • 安全性:保證不會由于權限系統誤判導致功能、數據泄漏;
  • 擴展性:在系統的多個節點提供擴展性,包括但不限于用戶類型擴展、用戶屬性擴展、資源類型擴展、資源屬性擴展。

功能目標

基本功能

權限基本功能開發,解決上述問題 1-5。

字段編輯權限

當前用戶對字段無編輯權限時,前端展示控件做禁用處理。

?身份代理

用戶請假或者工作崗位調動,會存在把系統權限臨時或永久轉移給交接的人。該功能在設計上支持,后續通過版本迭代實現,MVP 版本不實現。

設計方案

本方案設計上采用 RBAC+ABAC 融合方式實現權限管理,即 NGAC。兼容 RBAC、ABAC 的優點,同時在實現方案上預留擴展點,整個方案在實施過程中可以通過“大設計、小實現”的方式迭代式開放,在保持整體架構不變的情況下,可以先實現 MVP 版本,然后逐步迭代實現設計方案中的功能。

專用術語

  • User:用戶,可以是租戶內的一個自然人用戶、可以是第三方系統、可以是應用內的子系統,各類用戶有基本屬性,屬性可按照租戶維度自定義;
  • UserGroup:在管理平臺指定的一組用戶,用來給這些用戶賦予訪問權限;
  • Role:角色,角色用于配置權限策略,一個角色關聯一個用戶類型,角色策略配置該角色擁有的功能權限、數據列權限、數據行范圍權限;
  • Resource:權限資源項,例如 flow(流程),Resource 有層級關系,對應多個 Action,非葉子結點只有 Read,葉子結點有 1-N 個 Action;
  • Action:動作,比如:管理、查看詳情、修改
  • Condition:條件,可以承載 Subject、Object 附帶的屬性,也可以承載業務系統傳入的屬性(可以和 Subject、Object 無關),通過 Expression Language 來實現基于上下文做動態運算
  • Expression Language:表達式語言,根據上下文參數、內置方法動態計算結果
  • ALC(Access Contrl) :訪問控制,本文指工程資源訪問策略

權限模型

圖片

圖片

應用劃分

從用戶視角劃分業務應用,應用的粒度可探討

例如,定義 ITSM 里的 ITAM 作為一個業務應用,或者定義 ITAM 里的臺賬(Account)作為一個業務應用;

業務應用下面可劃分 1-N 個工程應用,工程應用可包括前端工程、后端微服務工程。

目的:權限項和業務應用綁定,方便用戶從用戶視角設置設置某個業務的角色、權限;

工程應用隸屬于某一個業務應用,例如 ITAM 下有 ITAM-A,ITAM-B 等工程應用,每個工程應用管理自己的權限(菜單、按鈕、HTTP 接口、RPC 接口等)

目的:工程應用和業務應用綁定,工程資源和工程應用綁定,權限項和工程資源綁定,方便開發人員按需設置訪問策略。

用戶和用戶組

用戶定義為系統資源訪問者,廣義范圍的用戶定義,不僅包括租戶內的自然人,還包括應用內子系統、第三方系統等,不同類型的用戶有不同的基本屬性,用戶屬性可擴展;

高效圈定用戶

一個用戶屬于多個用戶組,一個用戶組包含多個用戶,用戶和用戶組的關聯關系可靜態指定、可通過 Condition 組成的 Expression Language 表達式來動態匹配,動態匹配需監聽主數據的用戶屬性變化,實現較復雜,可迭代實現

用戶組沒有實現關系繼承,在具體使用中,用戶組繼承增加權限溯源復雜度,對高效圈定用戶用處不大。

資源

工程應用下面的資源管理,不同的用戶類型可以訪問不同的工程資源,

例如,自然人訪問的資源就是菜單、界面、按鈕已經按鈕對應的網關接口;

系統訪問的資源是 API 接口(HTTP、RPC)。

權限項

權限項是管理員在給角色授權時看到的權限信息,包括功能權限項和數據權限項;權限項是工程資源和主數據在權限業務域的定義,并定義權限業務的對應配置。

例如主數據 資產(Asset)有屬性 型號(Model),對應權限項配置

- name: 實物資產

key: Asset

attributes:

- name: 資產型號

key: "model"

deny_show: "-888888"

value_type: "int"

資源訪問控制(ACL)

工程資源如果需要鑒權,要和對應的權限項進行綁定

例如應用業務 ITAM 的前端工程 athena.node 的 HTTP 接口 GetAssetList 需要鑒權,需要的權限項 ITAM 應用下的權限項配置是 asset:view_list,ACL 配置如下:

  • 接口資源表式格式:{業務應用}:{工程應用}:{接口}
  • 功能權限項格式:{業務應用}:{resource}:{action}
CheckPermission: true

InterfaceName: itam:node:GetAssetList

RuleList:

- Rule:

- AuthKey: itam:asset:view_list

角色及權限設置

角色新增時,綁定一個用戶類型,類型可以是 Global,Global 角色不區分用戶類型;

角色權限設置內容:設置角色的功能權限項,數據權限項

數據字段權限項可設置允許、禁用兩種策略(參考 PeopleSaas 鑒權)

數據行范圍權限通過用戶類型屬性和主數據字段屬性匹配圈定范圍,

例如,角色 A 的用戶類型關聯:Employee,對資產的訪問范圍是只能訪問所在區域的閑置資產,表達式:

employee.location==asset.location&&asset.status=='idle'

授權

單個用戶可直接關聯一個用戶組,用戶組關聯角色,從而獲得權限;

單個用戶可通過條件匹配到動態用戶組,用戶組關聯角色,從而獲得權限;

單個用戶可直接設置角色,從而獲得角色設置的權限。

權限優先級

用戶從不同途徑獲取的權限會存在沖突重疊,定義優先級如下

圖片

場景流程

場景 1:第三方用戶資產回購-確認支付主體

IT 部門引入第三方公司 A 的員工,其工作職責是在 ITAM 后臺負責所在區域的資產回購確認支付主體,只能看到所在區域的狀態為代確認主體的回購流程單,每一行記錄只能看到資產編號和申請時間。

圖片

場景 2:工程應用 itam-flow 獲得主數據 Employee 的部分權限

itam-flow 只有主數據 Employee 的 UserName、Logo、Department、Sequence 查詢權限

  1. itam-flow 作為一個內部系統注冊為權限用戶;
  2. 設置一個角色,這個角色可以查詢 itam-data 服務的 Employee 查詢接口,數據列只有 UserName、Logo、Department、Sequence;
  3. itam-data 的 Employee 查詢接口,識別 itam-flow 系統,按照策略查詢 itam-flow 的數據權限,按權限配置返回數據。

物理架構

圖片

責任編輯:未麗燕 來源: 字節跳動技術團隊
相關推薦

2025-03-03 00:45:00

2019-10-12 09:18:33

系統設計架構

2009-07-06 13:57:35

設計方案

2009-10-12 16:50:00

2012-07-11 10:49:34

鮑爾默Surface

2009-10-19 13:50:57

布線設計方案

2010-09-08 16:17:37

SIP協議棧

2009-11-19 15:43:02

路由器設計

2009-02-09 10:41:00

IP城域網設計規劃

2024-10-17 08:26:53

ELKmongodb方案

2019-03-13 16:09:47

VMware虛擬化服務器

2009-10-19 14:39:10

2012-08-21 09:42:24

設計架構設計原則

2011-11-23 13:39:32

VPNVPN管理VPN管理方案

2009-09-25 16:54:02

機房UPS供電系統

2009-10-15 14:21:57

大樓綜合布線系統

2010-02-25 15:30:47

SDRAMWindows CE

2009-10-14 13:19:20

2019-01-23 16:44:37

服務器應用限流

2021-03-09 08:00:13

設計秒殺TPS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产激情视频网 | 日韩在线播放网址 | 欧美一级欧美三级在线观看 | 免费激情 | 91在线视频免费观看 | 91精品国产日韩91久久久久久 | 欧美日韩精品区 | 国产在线精品一区二区 | 日韩不卡在线观看 | 涩涩鲁亚洲精品一区二区 | 日韩在线日韩 | 精品美女视频在线观看免费软件 | 成人久久久久久久久 | 亚洲免费网址 | 黄色一级大片在线免费看产 | 日本五月婷婷 | 超碰av免费 | 久久91精品久久久久久9鸭 | 国产高清精品一区二区三区 | www.成人在线视频 | 奇米视频777 | 黑人性hd| 成人国产精品久久 | 亚洲一区播放 | 国产精品中文字幕在线观看 | 久久亚洲国产精品 | 91精品国产91 | 欧美成人影院在线 | 色香蕉在线 | 亚洲国产精品一区二区第一页 | 91在线看| 狠狠色综合欧美激情 | 久久久久国产一区二区三区 | 亚洲精品在线看 | 老司机久久 | 中文字幕免费观看 | 又黑又粗又长的欧美一区 | www.欧美| 黄色一级免费看 | 亚洲天堂中文字幕 | 国产精品区一区二 |