反饋已提交

網絡繁忙

數字簽章認證

1. 概述

1.1 版本

報表伺服器版本

11.0

1.2 應用場景

有範本權限的使用者複製自己的 範本預覽類型介紹 給其他使用者,其他使用者即使沒有該範本的查看權限,也可以透過 URL 查看範本。

數字簽章認證則是即使有範本預覽 URL ,沒有數字簽章就無法查看範本。

1.3 功能簡介

1)透過數字簽章驗證簽章資訊合法後,才允許存取範本,否則傳回沒有範本存取權限的報錯。

2)存取 範本預覽類型介紹 時,需要在 URL 後新增後綴&fine_digital_signature=值


2. 開啟數字簽章認證

2.1 獲取 fine_digital_signature 值

獲取對應的數字簽章金鑰的 fine_digital_signature 值,這裏以 GettingStarted.cpt 範本為例。

1)需要提前準備 Java 環境及 IDE 工具並建立一個 Java 檔案,將%FR_HOME%\webapps\webroot\WEB-INF\lib下的多個JAR包匯入建立的工程中,如下圖所示:

需要匯入的JAR包包括:fine-core-11.0.jar、fine-third-11.0.jar、fine-accumulator-11.0.jar、fine-cbb-11.0.jar

2)將程式碼複製到建立的檔案中,修改需要進行數字簽章的範本並自訂數字簽章金鑰。如下圖所示:

注:path 的值為範本路徑,相對路徑,形如doc/xx.cpt;key 的值為數字簽章金鑰,這兩個值會在本文 2.2 節平台設定中用到。

程式碼如下所示:

import com.fr.cert.token.JwtBuilder;
import com.fr.cert.token.Jwts;
import com.fr.cert.token.SignatureAlgorithm;
import java.util.Date;
public class test {
    public static void main(String[] args) {
        //數字簽章有效時長(毫秒)
        long validTime = 30 * 60 * 1000L;
        //數字簽章內容,以存取資源的相對路徑作為內容 
        String path = "GettingStarted.cpt"; //修改為需要進行數字簽章認證的範本路徑,相對路徑,例如doc/xx.cpt
        String key = "123456"//數字簽章金鑰,可以自訂
        //生成fine_digital_signature
        String fine_digital_signature = createJwt("""", path, validTime, key);
        //匯出fine_digital_signature
        System.out.println(fine_digital_signature);
    }
    private static String createJwt(String issuer, String id, String subject, long validTime, String key) {
        //用於生成數字簽章,即參數fine_digital_signature的值
        SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
        Date currentTime = new Date();
        Date expirationTime = new Date(currentTime.getTime() + validTime);
        JwtBuilder builder = Jwts.builder()
                .setIssuer(issuer)
                .setSubject(subject)
                .setIssuedAt(currentTime)
                .setExpiration(expirationTime)
                
                
                .setId(id)
                .signWith(signatureAlgorithm, key);
        return builder.compact();
    }
}

3)運作 test 檔案並獲得數字簽章金鑰的fine_digital_signature值,如下圖所示:

運作結果的值會在本文 2.3 節效果預覽中用到。

2.2 平台設定

管理者登入數據決策系統,點選「管理系統>範本認證>數字簽章金鑰地址」中,輸入金鑰值,如下圖所示:

2.3 效果預覽

直接存取 範本預覽類型介紹 ,本文範例連結為:http://localhost:8075/webroot/decision/view/report?viewlet=GettingStarted.cpt,提示沒有權限,如下圖所示:

在 URL 後面新增參數:&fine_digital_signature=值,「值」為本文 2.1 節運作 Java 檔案得到的資料,即可正常查看範本。如下圖所示:

3. 注意事項

3.1 遠端設計預覽範本無需驗證數字簽章

為了方便製作範本,設計器遠端連結開啟了數字簽章認證的遠端伺服器,預覽範本時無需驗證數字簽章。

1)遠端設計,透過點選設計器上的預覽按鈕,預覽範本效果時,無需驗證數字簽章,可直接預覽範本。

2)跳出遠端設計時,設計器的範本預覽 URL 將會失去直接預覽的效果,必須驗證數字簽章,方可預覽範本。

如下圖所示:


注:範本預覽 URL 隨遠端設計使用者跳出而失效。即斷開遠端伺服器的連結,範本預覽 URL 將會失去直接預覽的效果。

3.2 遮蔽數字簽章認證功能

超管希望對次級管理者開放範本認證功能,但不希望次級管理者使用「數字簽章認證」。

超級管理者可透過「fine_conf_entity視覺化配置插件」遮蔽數字簽章認證功能。重啟伺服器後設定生效。

注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB常用表欄位修改 。

配置項
修改規則
TemplateAuthConfig.digitalAuthAvailable

參數值如下,預設為true

false:管理者無法使用範本認證-數字簽章功能

true:管理者可使用範本認證-數字簽章功能

修改配置項 TemplateAuthConfig.digitalAuthAvailable 的值為 false,重啟伺服器後,管理者點選「管理系統>範本認證>認證配置」,可以發現認證方式中的「數字簽章認證」被遮蔽,無法設定。

注:在遮蔽「數字簽章認證」之前,請勿設定認證方式為「數字簽章認證」。否則遮蔽後認證仍然生效。

QQ图片20240722141242.png

3.3 決策平台首頁無法查看

問題描述&原因分析:

如果開啟了範本認證:

1)使用者在數據決策系統查看目錄範本,無需額外經過範本認證

2)使用者在數據決策系統查看首頁範本,需要額外經過範本認證。

如果首頁掛載了範本A,使用者沒有範本A的範本認證權限,那麼使用者就看不到該首頁。提示「您沒有該頁面的存取權限」。

1721628847110720.jpg

解決方案:

1)直接從範本認證中關閉對應範本的數字簽章認證,再從首頁的配置頁面掛載對應範本即可。               

2)利用首頁的連結進行掛載,利用對應的URL+參數&fine_digital_signature=值即可。

其中的值為金鑰生成的數字簽章,而非金鑰,獲取方法見本文檔2.1節

附件列表


主題: 數據決策系統
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙