呂向茹,牛宏睿,盧文龍
(1. 北京經緯信息技術有限公司,北京 100081;2. 中國鐵道科學研究院集團有限公司 電子計算技術研究所,北京 100081)
數據是鐵路實現數字化轉型的關鍵,是鐵路百年工程的源頭,也是打造智能化鐵路的基石[1]。其中,非結構化數據是數據治理的難點,約占鐵路建設行業總數據量的80%。鐵路建設行業內容管理是對鐵路建設期間形成的各類非結構化數據的管理,主要包括文本、圖片、設計模型、設計圖紙、各類報表、公文、視頻、音頻等[2]。鐵路建設內容管理不僅要滿足建造期數據高效運轉,還需為鐵路運營和維護完成原始數據積累。通過內容管理可深度挖掘鐵路建設行業數據價值,提高行業競爭優勢,為行業長遠發展提供助力。
權限控制是實現內容多層級精細化、高效化管理的重要手段,同時也為鐵路行業內容管理提供安全保障[3]。為滿足鐵路建設單位和參建單位精細化內容訪問控制,保障鐵路建設內容管理安全可靠,亟需設計一套適用于鐵路建設行業內容管理的權限模型[4]。
權限控制即控制用戶對資源或服務的訪問權限,目前常見的權限模型包括訪問控制列表(ACL,Access Control List)模 型、基 于 屬 性 的 訪 問 控 制(ABAC ,Attribute-Based Access Control)模型、基于角色的訪問控制(RBAC,Role-Based Access Control)模型等,不同權限模型適用于不同的應用場景。
(1)ACL 權限模型
ACL 是一種以資源為核心,基于權限列表進行授權的訪問控制機制。模型主要包含用戶、資源和操作3 個關鍵要素。當用戶請求操作資源時需檢查資源的權限列表,如果資源的權限列表中存在該用戶的操作權限則允許,否則拒絕。ACL 權限模型的優點在于原理簡單,缺點在于當存在大量用戶或資源眾多的情況下,不能滿足基于復雜多層級目錄樹內容管理的需求。
(2)ABAC 權限模型
ABAC 通過實體、操作、環境等屬性集合來實現用戶對資源的訪問控制,是一種基于屬性的訪問控制模型,如圖1 所示。ABAC 將用戶按照不同屬性進行劃分,為具有各類屬性組合的用戶進行資源授權。ABAC 權限模型的優點是能夠滿足復雜場景下權限的靈活配置,缺點是授權機制較為復雜。而鐵路建設行業內容管理的授權過程面向普通用戶,因此需要滿足簡單、易操作等特性。

圖1 ABAC 權限模型
(3)RBAC 權限模型
RBAC 指基于角色的訪問控制,是目前最常用的一種權限模型[5]。RBAC 模型包括用戶、角色、操作、對象和權限5 個基本要素。在RBAC 模型分類中,RBAC0 定義了最小要素幾何,也是其他RBAC模型的基礎,其權限模型如圖2 所示。該模型在對象和操作之間構建對應關系,形成權限項并授權于角色,通過會話實現用戶和角色的映射關系[6]。RBAC 權限模型的繼承機制和職責分離機制為鐵路建設行業內容管理權限控制模型提供了借鑒和參考。

圖2 RBAC0 權限模型
鐵路建設行業發布了《鐵路建設項目資料管理規程》《竣工文檔管理辦法》等一系列文件用以規范鐵路建設項目立項、審批、招投標、勘察設計、施工、監理、竣工驗收等全生命周期內文檔的形成、收集、整理、組卷、驗收、歸檔和移交等管理。通過規范化管理,鐵路建設行業內容管理權限控制形成以下特點。
(1)授權對象為文件夾或文件節點
在一般權限模型中,授權對象是指模型化的應用程序編程接口對象,包括Pods、Nodes、Secrets、ConfigMaps、Deployments 等,而基于內容管理的授權對象指文件夾和文件形成的節點。
(2)授權對象具有多層級繼承關系
在一般權限模型中,授權對象多是對單層級資源進行的分類;而基于內容管理的文件夾和其子文件夾或文件本身具有繼承關系,因此需要針對具有繼承關系的多層級目錄樹節點對象進行授權。
(3)具有統一的標準化目錄結構
依據《鐵路建設資料管理規程》,將鐵路建設內容管理標準目錄結構劃分為5 類,包括A 類—建設管理資料、B 類—勘察設計資料、C 類—施工資料、D 類—監理資料、E 類—竣工驗收資料[7]。
(4)元數據以JSON Schema 的方式掛接在節點
鐵路建設行業已梳理4 191 條元數據,這些元數據以結構化數據方式進行存儲,以JSON Schema 的方式掛接在節點,通過構建元數據模型實現對元數據的組織和管理,對節點進行授權的同時即可實現對元數據的操作授權。
(5)實行分級授權的管理模式
鐵路建設行業內容管理通過先創建節點、后進行授權的方式對鐵路建設結構化數據和非結構化數據進行管理。系統管理員創建“項目”節點,并將“項目”節點管理權限授權給項目管理員,項目管理員再依據需求創建“單位資料庫”,并將“單位資料庫”節點管理權限授權給單位管理員,單位管理員再依次創建本單位項目目錄結構并進行授權。
鐵路建設行業內容管理權限模型在RBAC 權限模型基礎上,以節點為核心進行授權,每個節點都存在一個權限列表與其對應,權限列表包含一條或多條權限控制項,權限控制項包括權限所有者和對應的角色,角色中包含了多個基礎權限,其模型如圖3 所示[8]。

圖3 鐵路建設行業內容管理權限模型
(1)節點:鐵路建設內容管理授權對象,包括文件夾和文件2 類,不同于一般權限模型中的資源或對象,內容管理對象具有繼承關系。
(2)權限列表:授權對象的訪問控制列表,由一條或多條權限控制項組成。
(3)角色:一系列基礎權限的組合,鐵路建設行業內容管理權限模型中的角色設定具有繼承關系。
(4)基礎權限:針對節點和子節點進行設定,包括讀、寫、刪除、屬性查看、屬性編輯等。
(5)操作:包括查看、下載、刪除、重命名、修改等,用戶具有的操作權限由基礎權限決定。
鐵路建設行業內容管理權限模型的設計需滿足在不修改權限體系的情況下,通過簡單配置即可實現權限擴展,滿足未來更高精細化管理需求。本文提出的權限模型通過固化基礎數據權限,依托基礎權限組合授權的方式簡化授權操作來實現,同時通過基礎數據權限對操作權限的約束,避免操作權限的頻繁變更對權限體系帶來的影響。基礎權限、角色和操作的映射關系如圖4 所示。

圖4 基礎權限、角色和操作的映射關系
(1)基礎權限
鐵路項目內容管理權限模型定義了13 項固化基礎權限,如表1 所示。
(2)角色
鐵路項目內容管理權限模型定義了4 類角色,如圖5 所示。用戶可根據自身需求進行擴展和配置。參與者為最小權限集合;在參與者基礎上增加寫入內容、寫入屬性、創建子節點和刪除子節點形成合作者角色;在合作者角色的基礎上增加創建節點、刪除節點、讀取權限和修改權限形成所有者角色;為所有者角色增加創建所有者基礎權限后形成管理者角色。

圖5 角色類型和角色關系
(3)操作
操作權限包括上傳、下載、重命名、屬性查看、創建、復制/粘貼、刪除、屬性編輯等,操作權限受基礎權限的約束,例如用戶是否具有下載權限,取決于用戶所被授予角色中是否包含讀取內容權限。
通過創建靈活、簡單的授權機制,實現鐵路建設單位和參建單位分級授權,滿足鐵路建設內容管理需求。鐵路建設行業內容管理授權機制主要包括權限設定、權限查看、權限繼承、權限刪除和權限判斷等。
(1)權限設定
創建節點后判斷是否需要修改節點權限,若不需要修改,則自動繼承父節點權限;若需要修改,則需對權限列表進行擴展,新增2 條權限列表數據,一條為自定義權限,另一條為共享權限。添加權限列表數據后再判斷是否需要新增權限控制項,若需要新增權限控制項,則需在權限列表和權限控制項關系表中增加權限列表和權限控制項關聯關系。
(2)權限查看
通過獲取節點ID 查找節點表中節點關聯的權限列表ID,進而查詢權限列表和權限控制項關系表中權限列表ID 對應的權限控制項,返回對應的權限控制項。
(3)權限繼承
創建子節點時默認繼承父節點權限,子節點自動獲取父節點權限列表ID 對應權限控制項。若取消子節點繼承關系,則權限列表中的繼承字段設為假,并新增權限列表數據項。
(4)權限刪除
刪除節點權限時需先刪除權限列表和權限控制項關系表中的權限列表和權限控制項,此外還需刪除繼承此節點權限的權限控制項,繼承的權限項通過權限列表和權限控制項關系表中的位置字段來判斷,位置序號大于此節點的權限項需刪除。
(5)權限判斷
首先獲取用戶節點列表,通過節點列表獲取節點對應的權限列表ID,進而獲取權限列表ID 對應權限控制項,查找基礎權限對應的操作權限,返回用戶操作列表。
依據鐵路項目內容管理需求,系統管理員創建鐵路項目資料庫,為項目管理員授權管理者角色;項目管理員創建建設單位資料庫、設計單位資料庫、施工單位資料和監理單位資料庫,并將各單位管理員授權管理者角色;各單位管理員登錄系統,根據各單位內容管理需求創建各單位資料庫,其中建設單位管理員分別為工程部和質安部文件夾授權。部分資料庫目錄樹如圖6 所示。通過分級授權項目管理員、單位管理員和文檔所有者可實現設定、查看、判斷和繼承權限。
當施工單位管理員對本單位“線路綜合”文件夾重新進行授權時,取消線路綜合文件夾的繼承權限,圖6 中的“線路”與“線路綜合”文件夾的繼承鏈斷開。重新對“線路綜合”文件夾進行自定義授權時,同時生成2 條權限數據,分別為自定義權限和共享權限,“線路綜合”文件夾對應的節點權限為自定義權限,“水準表”文件繼承“線路綜合”文件夾節點的權限,水準表文件對應的節點權限為共享權限。鐵路建設單位和各參建單位基于本文設計的權限控制模型可靈活配置和修改各單位職責范圍內的內容訪問權限。

圖6 資料庫目錄樹
依據本文設計并實現的鐵路建設行業內容管理權限模型,搭建了鐵路建設內容管理系統,對鐵路建設項目立項、審批、招投標、勘察設計、施工、監理、竣工驗收等全生命周期內文檔進行統一管理。鐵路建設內容管理系統以電子文檔全過程管理為指導思想,針對權限精細化管控需求進行模塊化設計,具有高內聚、低耦合的特點。
鐵路建設內容管理系統權限管理模塊如圖7 所示,通過基礎權限、角色授權配置,滿足了鐵路建設多層級、細粒度內容管理需求,實現了鐵路建設項目信息共享與交互;通過統一的文檔創建、存儲、流轉、利用和歸檔,推動了鐵路建設項目的信息化、標準化管理。

圖7 鐵路建設內容管理系統權限管理
鐵路建設行業存在巨大的內容管理需求。本文設計了一套適用于鐵路建設行業內容管理的權限模型;對權限模型、權限映射及權限設定、查看、繼承、刪除、判斷等授權機制和授權流程進行研究,并通過搭建鐵路建設內容管理系統予以應用,滿足了鐵路建設單位和參建單位靈活化、個性化、高效化管理需求,同時也為鐵路建設行業內容管理提供了通用解決方案。該模型對于提高企業競爭力,助力鐵路數字化轉型,進而打造智能鐵路具有積極意義。