1. 概述
1.1 版本
報表伺服器版本 | 插件版本 |
---|---|
11.0 | V1.0 |
1.2 應用場景
資訊安全,是目前企業越來越關注的重點之一,權限隔離也就作為最常用的手段之一被各大企業普遍應用。當前帆軟的權限體系都是根據部門、職位、角色來控制的,但是目前這些控制維度不能完全滿足客戶對於權限的安全控制,權限攔截插件可以從額外的維度出發,加強了權限控制
1.3 功能描述
功能 | 功能描述 | ||
權限攔截配置 | 存取場景配置 | 存取使用者 | 從使用者和角色兩個維度進行限制 |
網路 | 內網,外網或者自訂IP段進行限制 | ||
存取用戶端 | 從不同的用戶端進行限制 | ||
整合框架 | 嵌入別的系統的域名下的本工程的頁面 | ||
可配置權限的資源 | 決策平台/H5決策平台/決策平台目錄/報表目錄/自訂資源 | ||
權限模擬 | 輸入模擬存取場景和資源,得出權限結果和原因 |
2. 插件介紹
2.1 插件安裝
點選下載插件:權限攔截插件下載地址
設計器插件安裝方法請參見:設計器插件管理
伺服器安裝插件方法請參見:伺服器插件管理
2.2 操作方法
2.2.1 安裝插件
安裝插件後,管理者可以看到決策平台的權限管理選項中增加了權限攔截配置項。
2.2.2 權限攔截配置
點選 + 號,可以選擇增加權限項、增加分組或者增加快捷範本。
選擇增加權限項後,給新的權限項命名,(可以選擇複用目前內建權限項快捷範本),點選確認
建立新的權限項後,點選該權限項,選擇對應的配置
1)存取場景配置
注:存取場景如果一個預設維度如果沒有任何設定,則預設包括這個維度下所有場景。
設定 | 說明 |
---|---|
存取使用者 | 存取使用者可以從平台使用者以及平台角色兩個維度選擇,選中存取使用者,點選編輯進行選擇。 |
網路 | 存取網路可以分為內網,外網以及自訂 IP 段
|
存取用戶端 | 用戶端可以分為機器用戶端和軟體客戶端 注:資料分析APP透過請求頭的 terminal=APP 判斷,需要注意下 APP 的 userAgent 是沒有行動端Mobile的標識的,本地測試是 userAgent=okhttp/3.11.0,他在第一層機器標識裏只屬於【電腦端PC等】 |
整合框架 | 支援配置整合系統的來源,即請求頭的 Referer(網站來路) 注:Referer是HTTP中的一個請求頭,其內容指明瞭請求資源的來源地址 (僅需要域名和埠號即可)。 |
2)權限資源配置
注:超管登入的情況:如果當前存取的是決策平台和自訂資源,超管登入的情況下,不做權限攔截。防止配置不當,導致超管進不去平台。
存取資源 | 說明 |
決策平台 | ![]() |
H5決策平台 | ![]() |
決策平台目錄 | 支援單獨選擇和全選。單獨選擇時,後續新增的報表需要補充選擇 注:目錄掛載為【新增連結】類型的目錄不在控制範圍內 |
報表目錄 | 支援單獨選擇和全選。單獨選擇時,後續新增的報表需要補充選擇 攔截的是/view/form?viewlet=報表路徑、/view/report?viewlet=報表路徑 |
自訂資源 | 支援配置自訂的URL連結資源 攔截的是除了上述決策平台、決策平台目錄、報表目錄之外的平台url 僅支援當前伺服器Servlet路徑(系統管理-標準-標準參數-Servlet路徑名)下的請求路徑如/decision/xxx |
3)有權限與無權限配置
有權限表示當前配置的存取場景有當前配置資源的存取權限
無權限表示當前配置的存取場景沒有當前配置資源的存取權限
4)進階配置
用於配置權限項和權限分組之間的聯動
注:根據插件 AND 和 OR 的邏輯,只有一個權限項時且為 OR 時,權限攔截是不生效的
對於 OR 來說,其結果為「有權限」的時候,會直接導致當前分組的計算結果為「有權限」。
對於 AND 來說,其結果為 「無權限」 的時候,在沒有 OR 權限項先一步導致當前分組為 「有權限」 的情況下,會直接導致當前層級的計算結果為 「無權限」。
a. 當兩個權限項同為 AND 時,會優先計算 「無權限」 的權限項。
如下圖所示,新增兩個權限項,分別設定決策平台目錄「有權限」和「無權限」,進階配置選擇「AND」:
目錄首頁>查看目錄下範本,無查看權限,被攔截。
b. 當兩個權限項同為 OR 時,會優先計算「有權限」的權限項
如下圖所示,新增兩個權限項,分別設定決策平台目錄「有權限」和「無權限」,進階配置選擇「OR」:
目錄首頁>查看目錄下範本,有查看權限,未被攔截。
c. 當兩個權限項一個為 AND,一個為 OR 時,若 OR 的結果為「有權限」則計算「有權限」的權限項,忽略 AND 的權限項結果;若OR的結果為「無權限」則不計算,直接計算 AND 的權限項結果。
決策平台目錄「有權限」 - AND,決策平台目錄「無權限」 - OR:有查看權限,未被攔截。
決策平台目錄「無權限」 - AND,決策平台目錄「有權限」 - OR:有查看權限,未被攔截。
決策平台目錄「無權限」 - AND,決策平台目錄「無權限」 - OR:無查看權限,被攔截。
2.2.3 權限攔截提示正文自訂
1)觸發權限攔截後,正文提示顯示為:
攔截結果提示正文:預設為【當前頁面禁止存取】
攔截原因提示正文:預設為【觸發權限項攔截:具體權限項的名稱】
攔截解決方案提示正文:預設為【請聯絡管理者】
2)自訂修改路徑:
可在管理系統>系統管理>標準>權限攔截配置,對權限攔截正文提示進行自訂修改
3. 範例
權限攔截主要是兩個場景:某個範圍沒有權限和只有某個範圍有權限
3.1 某個範圍沒有權限範例:禁止外網PC端存取決策平台
配置程式:
a. 建立對應命名的權限項
b. 存取場景配置中,網路選擇外網
c. 存取場景配置中,存取用戶端選擇電腦PC端及其他
d. 權限資源配置中,選擇決策平台
e. 選中無權限,進階配置選擇 AND
f. 儲存
3.2 只有某個範圍有權限範例:只能在內網環境中用行動端登入決策平台
跟上一個範例有差別,這種情況下需要攔截的場景太多,只從攔截的角度出發容易遺漏,就需要多條權限項配合
配置程式:
a. 建立第一個權限項 ----用於攔截所有存取決策平台的場景
b. 存取場景配置中,不選擇(不選擇也就是預設全選)
c. 權限資源配置中,選擇決策平台
d. 選中無權限,進階配置選擇 AND
e. 建立第二個權限項 ----用於給固定的存取場景權限
f. 存取場景配置中,網路選擇內網
g. 存取場景配置中,存取用戶端選擇行動Mobile端
h. 權限資源配置中,選擇決策平台
i. 選中有權限,進階配置選擇 OR
j. 儲存
4. 注意事項
a. 資料分析APP中沒有決策平台的概念,故配置資料分析APP存取決策平台的權限項不起作用。
b. 常見的配置誤區:配置【OR 無權限】然後還是可以存取,這是因為 OR 只有為「有權限」的時候才會直接導致結果為「有權限」,否則就是繼續計算或取預設結果「有權限」。
c. 常見的配置誤區:配置【AND 有權限 】選擇【自訂資源】/decision/xxx,然後導致超管跳出後無法存取工程。這是因為【AND 有權限】的組合實際上是一個強制白名單(沒有選擇的資源會變成「無權限」,導致權限項計算結果為「無權限」)。