本文将为您介绍如何使用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 |
以上为专业版嵌入报表默认数。