本文將為您介紹如何使用Ticket報表嵌入方案免登嵌入到第三方系統,同時可控制嵌入至第三方系統的Quick BI報表許可權,以及如何通過票據管理有效防止連結被惡意分享資料泄露的問題。本文適用於專業版。
背景資訊
Quick BI全新推出了安全增強嵌入分析方案,簡稱Ticket報表嵌入方案,當使用Quick BI專業版時,可實現連結、訪問、看數等多情境一站式安全管控,協助您低成本與企業業務系統整合,高效構建自有品牌特色的資料產品。
傳參嵌入使用說明:
在嵌入式整合情境下,結合全域參數注參的方式可以實現同一張報表千人千面的看數效果。
傳參嵌入僅面向專業版100個通用使用者數及以上企業客戶開放。
注意事項
使用Ticket報表嵌入方案,需要關注以下幾點:
目前僅支援將儀表板、試算表、資料大屏、自助取數的報表嵌入到其他系統。
若您需要試用全域參數能力,請聯絡Quick BI營運負責人。
目前國際站增強方案僅支援新加坡和中國香港網站。
說明新加坡網站和中國香港網站網域名稱如下:
新加坡:bi-ap-southeast-1.data.aliyun.com
中國香港:bi-cn-hongkong.data.aliyun.com
本文以中國香港的網域名稱為例進行連結拼接,其他網站使用時請替換為對應網站的網域名稱。
步驟1:開通需要嵌入的報表
僅當報表是發布狀態時,才支援設定報表嵌入功能。
您可以使用從開放平台模組開通報表嵌入:
在Quick BI產品首頁,按照下圖指引,進入嵌入報表頁面。
在新增嵌入報表頁面,選擇目標工作空間和資料物件類型後,在列表中選中資料對象名稱後,單擊開通嵌入。
若報表太多時,您也可以輸入報表名稱,協助您快速搜尋到目標報表。
在報表嵌入配置對話方塊,進行以下配置。
參數名稱
描述
內嵌物件
選擇嵌入的對象。
選擇頁面整體,則嵌入的對象為當前儀表板。
選擇某個組件,則嵌入的對象為當前儀表板下的某個組件。
展示型配置
嵌入後,是否攜帶當前儀表板的標題。
安全認證類型和Ticket連結
選擇Ticket認證並產生Ticket連結。
您可以手動輸入Ticket連結或者單擊快捷產生,產生Ticket。
在產生Ticket的介面,您可以設定綁定使用者、有效時間長度、浮水印參數和訪問次數。
擷取內嵌程式碼
支援產生URL連結和Iframe代碼。
單擊複製。
步驟2:通過API介面產生AccessTicket票據
調用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****
。說明UserId和AccountName只填一個即可,不填時預設綁定報表的Owner。若您需要配置資料行級許可權,請參見附1:配置資料行級許可權。
AccountName
String
使用者的帳號名稱。
如果使用者是阿里雲主帳號wangwu,格式為[主帳號],例如wangwu。
如果使用者是RAM帳號zhangsan**@aliyun.cn,格式為[主帳號:子帳號],例如wangwu:zhangsan**。
說明UserId和AccountName只填一個即可,不填時預設綁定報表的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。
產生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
拼接流程及樣本見下表。
流程 | 儀表板樣本 | 試算表樣本 | 自助取數樣本 | 資料大屏樣本 |
|
|
|
| |
|
|
|
| |
|
|
|
| |
|
|
|
|
拼接格式及報表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
擷取Quick BI網域名稱。
例如,Quick BI 中國香港網站網域名稱為
bi-cn-hongkong.data.aliyun.com
,以具體環境網域名稱為準。擷取預覽報表URL。
報表對應的預覽頁面URL如下,您可以根據需要選擇。
儀表板:
token3rd/dashboard/view/pc.htm
試算表:
token3rd/report/view.htm
資料大屏:
token3rd/screen/view/pc.htm
自助取數:
token3rd/offline/view/pc.htm
在報表編輯頁面,擷取報表ID。
儀表板ID,本例為
d01****c5f
在儀表板編輯頁面,擷取地址欄中儀表板pageId的值。
試算表ID,本例為
d0****3ba88
在試算表編輯頁面,擷取地址欄中試算表ID的值。
資料大屏ID,本例為
3c****26b
在資料大屏編輯頁面,擷取地址欄中資料大屏pageId的值。
自助取數ID,本例為
b2****47
在自助取數編輯頁面,擷取地址欄中自助取數pageId的值。
將上述步驟擷取的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:配置資料行級許可權
若UserId
和accountName
不填時,嵌入報表的查看許可權預設跟隨報表Owner。您可以按照下圖指引,配置資料行級許可權,並設定UserId
或AccountName
參數,繫結目標使用者的許可權。詳情操作請參見行列許可權。
附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會自動解析成 |
contain | 字串包含 | SQL會自動解析成 |
start-with | 字串以什麼起始 | SQL會自動解析成 |
end-with | 字串以什麼結尾 | SQL會自動解析成 |
附3:可嵌入報表數量說明
購買使用者數 | 嵌入第三方數量 |
50 | 100 |
100 | 200 |
200 | 500 |
300 | 1000 |
以上為專業版嵌入報表預設數。