本文将为您介绍如何使用Ticket报表嵌入方案免登嵌入到第三方系统,同时可控制嵌入至第三方系统的Quick BI报表权限,以及如何通过票据管理有效防止链接被恶意分享数据泄露的问题。本文适用于专业版。
传参嵌入使用说明:
在嵌入式集成场景下,结合全局参数注参的方式可以实现同一张报表千人千面的看数效果。
传参嵌入仅面向专业版100个通用用户数及以上企业客户开放。
背景信息
Quick BI全新推出了安全增强的嵌入分析方案,简称Ticket报表嵌入方案,当使用Quick BI专业版时,可实现链接、访问、看数等多场景一站式安全管控,帮助您低成本与企业业务系统集成,高效构建自有品牌特色的数据产品。Ticket报表嵌入方案具备以下特点。
注意事项
使用Ticket报表嵌入方案,需要关注以下几点:
目前仅支持将仪表板、电子表格、数据大屏、自助取数、即席分析和数据填报的报表嵌入到其他系统。
若您需要试用全局参数能力,请联系Quick BI运营负责人。
Quick BI专业版支持增强方案,高级版仅支持基础方案。
基础方案和增强方案的能力项有所不同,具体请参见下表:
能力项
基础方案
增强方案
绑定用户
报表owner,且不可修改
支持自定义,千人千面
访问次数
每个Ticket最多10万次
不限量,支持自定义设置
水印
不支持
支持
(大屏本身不支持水印除外)
有效时长
最大 240 分钟
支持自定义
全局参数
不支持
支持
区块嵌入
不支持
支持
跳转次数
说明被跳转的报表也需要开通嵌入。
仅可跳转一次
例如:A报表跳转到B报表后,B报表无法再跳转到C报表。
支持跳转任意次数
例如:A报表跳转到B报表后,B报表还能跳转到C报表,C也能再继续往后跳转,以此类推。
步骤1:开通需要嵌入的报表
仅当报表是发布状态时,才支持设置报表嵌入功能。
您可以使用以下任意一种方式开通报表嵌入:
方式一:从开放平台模块
在Quick BI产品首页,按照下图指引,进入嵌入报表页面。
在新增嵌入报表页面,选择目标工作空间和数据对象类型后,在列表中选中数据对象名称后,单击开通嵌入。
若报表太多时,您也可以输入报表名称,帮助您快速搜索到目标报表。
方式二:从报表编辑页面
支持嵌入报表为仪表板、电子表格、数据大屏、自助取数、即席分析和数据填报,下面以仪表板为例介绍。
在仪表板编辑页面,按照下图指引,开通嵌入报表。
在报表嵌入配置对话框,进行以下配置。
重要此处调试仅做功能体验使用,实际应用请完成步骤2:通过API接口生成AccessTicket票据和步骤3:拼接免登URL。
参数名称
描述
嵌入对象
选择嵌入的对象。
选择页面整体,则嵌入的对象为当前仪表板。
选择某个组件,则嵌入的对象为当前仪表板下的某个组件。
展示型配置
嵌入后,是否携带当前仪表板的标题。
安全认证类型和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自建账号
4:钉钉
5:RAM子账号
9:企业微信
10:飞书
说明若AccountName不为空时,则AccountType也不能为空。
ExpireTime
Integer
过期时间。
单位:分钟
默认值:240(该值为页面调试的上限数值,可通过接口自定义,最大上限是integer字段类型的最大取值)
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
。AccessTicket绑定的参数详情请参见嵌入分析。
步骤3:拼接免登URL
拼接流程及示例见下表。
流程 | 仪表板示例 | 电子表格示例 | 自助取数示例 | 数据大屏示例 | 即席分析示例 | 数据填报示例 |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
|
拼接格式及报表URL如下。
仪表板的拼接格式为
https://<Quick BI域名>/<预览报表URL>?pageId=<报表ID>&accessTicket=<AccessTicket>
,则生成的URL为:https://bi.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.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.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.aliyun.com/token3rd/screen/view/pc.htm?pageId=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6
即席分析的拼接格式为
https://<Quick BI域名>/<预览报表URL>?pageId=<报表ID>&accessTicket=<AccessTicket>
则以公共云为例,生成的URL为:https://bi.aliyun.com/token3rd/analysis/view.htm?id=<xxx>&accessTicket=<xxx>
数据填报的拼接格式为
https://<Quick BI域名>/<预览报表URL>?pageId=<报表ID>&accessTicket=<AccessTicket>
则以公共云为例,生成的URL为:http://bi.aliyun.com/token3rd/dataform/view.htm?id=<xxx>&accessTicket=<xxx>
若您需要在报表中进行区块嵌入,需要在报表URL后拼接&cmptId=XXX
。例如,您需要在电子表格中嵌入区块,则生成的URL为:
https://bi.aliyun.com/token3rd/report/view.htm?id=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6&cmptId=XXX
获取Quick BI域名。
例如,Quick BI公共云域名为
bi.aliyun.com
,以具体环境域名为准。获取预览报表URL。
报表对应的预览页面URL如下,您可以根据需要选择。
仪表板:
token3rd/dashboard/view/pc.htm
电子表格:
token3rd/report/view.htm
数据大屏:
token3rd/screen/view/pc.htm
自助取数:
token3rd/offline/view/pc.htm
即席分析:
token3rd/analysis/view/pc.htm
数据填报:
token3rd/dataform/view.htm
在报表编辑页面,获取报表ID。
仪表板ID,本例为
d01****c5f
在仪表板编辑页面,获取地址栏中仪表板pageId的值。
电子表格ID,本例为
d0****3ba88
在电子表格编辑页面,获取地址栏中电子表格Id的值。
数据大屏ID,本例为
3c****26b
在数据大屏编辑页面,获取地址栏中数据大屏pageId的值。
自助取数ID,本例为
b2****47
在自助取数编辑页面,获取地址栏中自助取数pageId的值。
即席分析ID,本例为
7f****da
在即席分析编辑页面,获取地址栏中即席分析pageId的值。
数据填报ID,本例为
29****53
在数据填报编辑页面,获取地址栏中数据填报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>
即席分析的拼接格式
https://<Quick BI域名>/<预览报表URL>?id=<报表ID>&accessTicket=<AccessTicket
数据填报的拼接格式
https://<Quick BI域名>/<预览报表URL>?id=<报表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:可嵌入报表数量说明
专业版默认嵌入报表数为用户数的两倍。
专业版(新)默认嵌入报表数为通用账号数 * 2 + 访问者账号数 * 0.5,小数向上取整。例如购买了通用用户50+查看用户5,默认赠送103张报表。
以上为专业版嵌入报表默认数,如需增购,请参见Quick BI计费方式。