全部產品
Search
文件中心

Quick BI:報表嵌入資料許可權控制和傳參的安全增強方案

更新時間:Jun 30, 2024

本文將為您介紹如何使用Ticket報表嵌入方案免登嵌入到第三方系統,同時可控制嵌入至第三方系統的Quick BI報表許可權,以及如何通過票據管理有效防止連結被惡意分享資料泄露的問題。本文適用於專業版。

背景資訊

Quick BI全新推出了安全增強嵌入分析方案,簡稱Ticket報表嵌入方案,當使用Quick BI專業版時,可實現連結、訪問、看數等多情境一站式安全管控,協助您低成本與企業業務系統整合,高效構建自有品牌特色的資料產品。

說明

傳參嵌入使用說明:

  1. 在嵌入式整合情境下,結合全域參數注參的方式可以實現同一張報表千人千面的看數效果。

  2. 傳參嵌入僅面向專業版100個通用使用者數及以上企業客戶開放。

注意事項

使用Ticket報表嵌入方案,需要關注以下幾點:

  • 目前僅支援將儀表板、試算表、資料大屏、自助取數的報表嵌入到其他系統。

  • 若您需要試用全域參數能力,請聯絡Quick BI營運負責人。

  • 目前國際站增強方案僅支援新加坡中國香港網站。

    說明

    新加坡網站和中國香港網站網域名稱如下:

    • 新加坡:bi-ap-southeast-1.data.aliyun.com

    • 中國香港:bi-cn-hongkong.data.aliyun.com

    本文以中國香港的網域名稱為例進行連結拼接,其他網站使用時請替換為對應網站的網域名稱。

步驟1:開通需要嵌入的報表

僅當報表是發布狀態時,才支援設定報表嵌入功能。

您可以使用從開放平台模組開通報表嵌入:

  1. 在Quick BI產品首頁,按照下圖指引,進入嵌入報表頁面。

    image

  2. 新增嵌入報表頁面,選擇目標工作空間和資料物件類型後,在列表中選中資料對象名稱後,單擊開通嵌入image.png

    若報表太多時,您也可以輸入報表名稱,協助您快速搜尋到目標報表。

  3. 報表嵌入配置對話方塊,進行以下配置。

    參數名稱

    描述

    內嵌物件

    選擇嵌入的對象。

    • 選擇頁面整體,則嵌入的對象為當前儀表板。

    • 選擇某個組件,則嵌入的對象為當前儀表板下的某個組件。

    展示型配置

    嵌入後,是否攜帶當前儀表板的標題。

    安全認證類型Ticket連結

    選擇Ticket認證並產生Ticket連結。

    您可以手動輸入Ticket連結或者單擊快捷產生,產生Ticket。

    image

    在產生Ticket的介面,您可以設定綁定使用者有效時間長度浮水印參數訪問次數

    擷取內嵌程式碼

    支援產生URL連結Iframe代碼

  4. 單擊複製

步驟2:通過API介面產生AccessTicket票據

  1. 調用CreateTicket介面產生報表嵌入需要使用的Ticket。

    產生accessTicket的各項參數說明如下:

    參數名稱

    類型

    描述

    WorksId

    String

    開通嵌入的報表ID。

    目前僅支援儀表板和試算表。

    CmptId

    String

    組件ID。為以上報表中某個組件的ID。

    擷取組件ID調用的介面請參見QueryWorksBloodRelationship

    TicketNum

    Integer

    Ticket的票據數量。

    • 預設值為1。

    • 建議值為1。

    • 最大值為99999。

    每次使用票據訪問後,Ticket的票據數量減1。

    UserId

    String

    Quick BI的UserId,非您的阿里雲帳號ID。

    您可以調用QueryUserInfoByAccount介面,擷取UserId。UserId範例為fe67f61a35a94b7da1a34ba174a7****

    說明

    UserIdAccountName只填一個即可,不填時預設綁定報表的Owner。若您需要配置資料行級許可權,請參見附1:配置資料行級許可權

    AccountName

    String

    使用者的帳號名稱。

    • 如果使用者是阿里雲主帳號wangwu,格式為[主帳號],例如wangwu。

    • 如果使用者是RAM帳號zhangsan**@aliyun.cn,格式為[主帳號:子帳號],例如wangwu:zhangsan**。

    說明

    UserIdAccountName只填一個即可,不填時預設綁定報表的Owner。若您需要配置資料行級許可權,請參見附1:配置資料行級許可權

    AccountType

    Integer

    使用者的帳號類型。

    • 1:阿里雲帳號

    • 3:Quick BI自建帳號

    • 5:RAM子帳號

    說明

    若AccountName不為空白時,則AccountType也不可為空。

    ExpireTime

    Integer

    到期時間。

    • 單位:分鐘

    • 預設值:240

    WatermarkParam

    String

    報表的浮水印參數。

    不得超過50個字元。

    GlobalParam

    String

    報表過濾條件的全域參數

    格式為JSON格式的字串。

    說明

    若您需要使用全域參數能力,請聯絡Quick BI營運負責人。

    說明
    • 連結防分享控制:TicketNum的取值建議為1,表示產生的第三方嵌入連結僅被訪問一次。

    • 報表嵌入時,支援綁定浮水印參數WatermarkParam

  2. 產生AccessTicket。

    範例程式碼請參見SDK樣本

    返回結果樣本如下:

    {
      "requestId" : "7D784AB0-5B77-077E-B628-E782B58D3898",
      "result" : "fd138bcb-****-4fde-b413-81bcee59bdb6",
      "success" : true
    }
    說明

    result即為此次API調用產生的AccessTicket,AccessTicket為fd138bcb-****-4fde-b413-81bcee59bdb6

步驟3:拼接免登URL

拼接流程及樣本見下表。

流程

儀表板樣本

試算表樣本

自助取數樣本

資料大屏樣本

1、擷取Quick BI網域名稱

bi-cn-hongkong.data.aliyun.com

bi-cn-hongkong.data.aliyun.com

bi-cn-hongkong.data.aliyun.com

bi-cn-hongkong.data.aliyun.com

2、擷取預覽報表URL

token3rd/dashboard/view/pc.htm

token3rd/report/view.htm

token3rd/offline/view/pc.htm

token3rd/screen/view/pc.htm

3、擷取報表ID

dd0****83f

42****18ef6

22****9pek0

27****an79d

4、擷取AccessTicket

fd138bcb-****-4fde-b413-81bcee59bdb6

fd138bcb-****-4fde-b413-81bcee59bdb6

fd138bcb-****-4fde-b413-81bcee59bdb6

fd138bcb-****-4fde-b413-81bcee59bdb6

拼接格式及報表URL如下。

  • 儀表板的拼接格式為https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>,則產生的URL為:

    https://bi-cn-hongkong.data.aliyun.com/token3rd/dashboard/view/pc.htm?pageId=dd0****83f&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6
  • 試算表的拼接格式為https://<Quick BI網域名稱>/<預覽報表URL>?id=<報表ID>&accessTicket=<AccessTicket>,則產生的URL為:

    https://bi-cn-hongkong.data.aliyun.com/token3rd/report/view.htm?id=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6
  • 自助取數的拼接格式為https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>則以中國香港網站為例,產生的URL為:

    https://bi-cn-hongkong.data.aliyun.com/token3rd/offline/view/pc.htm?pageId=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6
  • 資料大屏的拼接格式為https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>則以中國香港網站為例,產生的URL為:

    https://bi-cn-hongkong.data.aliyun.com/token3rd/screen/view/pc.htm?pageId=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6

若您需要在報表中進行區塊嵌入,需要在報表URL後拼接&cmptId=XXX。例如,您需要在試算表中嵌入區塊,則產生的URL為:

https://bi-cn-hongkong.data.aliyun.com/token3rd/report/view.htm?id=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6&cmptId=XXX
  1. 擷取Quick BI網域名稱。

    例如,Quick BI 中國香港網站網域名稱為bi-cn-hongkong.data.aliyun.com,以具體環境網域名稱為準。

  2. 擷取預覽報表URL。

    報表對應的預覽頁面URL如下,您可以根據需要選擇。

    • 儀表板:token3rd/dashboard/view/pc.htm

    • 試算表:token3rd/report/view.htm

    • 資料大屏:token3rd/screen/view/pc.htm

    • 自助取數:token3rd/offline/view/pc.htm

  3. 在報表編輯頁面,擷取報表ID。

    • 儀表板ID,本例為d01****c5f

      在儀表板編輯頁面,擷取地址欄中儀表板pageId的值。

      image

    • 試算表ID,本例為d0****3ba88

      在試算表編輯頁面,擷取地址欄中試算表ID的值。試算表ID

    • 資料大屏ID,本例為3c****26b

      在資料大屏編輯頁面,擷取地址欄中資料大屏pageId的值。

      image.png

    • 自助取數ID,本例為b2****47

      在自助取數編輯頁面,擷取地址欄中自助取數pageId的值。

      image.png

  4. 將上述步驟擷取的Quick BI網域名稱、預覽報表URL、報表ID和步驟2 擷取AccessTicket參數拼接到如下請求地址中。

    • 儀表板的拼接格式https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>

    • 試算表的拼接格式https://<Quick BI網域名稱>/<預覽報表URL>?id=<報表ID>&accessTicket=<AccessTicket>

    • 資料大屏的拼接格式https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>

    • 自助取數的拼接格式https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>

附1:配置資料行級許可權

UserIdaccountName不填時,嵌入報表的查看許可權預設跟隨報表Owner。您可以按照下圖指引,配置資料行級許可權,並設定UserIdAccountName參數,繫結目標使用者的許可權。image詳情操作請參見行列許可權

附2:產生全域參數說明

在目標儀表板或試算表中設定對應的全域參數,全域參數用於綁定報表並產生AccessTicket。

全域參數的參數名為GlobalParam,全域參數的參數值是一個JSON 數組

[
  {
    "paramKey": "price", // 全域參數 Key
    "joinType": "and",   // 串連方式,使用 and 即可
    "conditionList": [
      {
        "operate": "=", // 操作符,參考以下說明
        "value": "1"    // 操作值,在多個值的情況下使用數組 ["1", "2"]
      },
      {
        "operate": "=", // 操作符,參考以下說明
        "value": "2"    // 操作值,在多個值的情況下使用數組 ["1", "2"]
      }
    ]
  },
  {
    "paramKey": "area", // 全域參數 Key
    "joinType": "and",   // 串連方式,使用 and 即可
    "conditionList": [
      {
        "operate": "in",          // 操作符
        "value": ["華北","華南"]    // 操作值,在多個值的情況下使用數組
      }
    ]
  }
]

全域參數operate欄位常用枚舉說明如下:

操作符(operate)

說明

備忘

=

等於

-

!=

不等於

-

>

大於

-

>=

大於等於

-

<

小於

-

<=

小於等於

-

in

in

參數值必須是數組

not-in

no in

參數值必須是數組

like

like

關鍵字模糊比對。

SQL會自動解析成like '%{參數值}%'

contain

字串包含

SQL會自動解析成like '%{參數值}%'

start-with

字串以什麼起始

SQL會自動解析成like '{參數值}%'

end-with

字串以什麼結尾

SQL會自動解析成like '%{參數值}'

附3:可嵌入報表數量說明

購買使用者數

嵌入第三方數量

50

100

100

200

200

500

300

1000

說明

以上為專業版嵌入報表預設數。