第三方系统集成DMP单点登录查看报告

在DMP系统内创建报告,并将报告采用“第三方授权”的方式发布,然后将报告通过OpenAPI接口集成到第三方系统站点里,第三方系统可通过单点登录的方式查看报告

一、查看报告流程图

报告集成流程图

二、接口API

1、获取报告列表(OpenAPI接口):

第三方OpenAPI独立部署环境:第三方OpenAPI独立部署域名

接口(Path): /openapi/dashboard/list
请求方法(Method): GET
请求头(Headers): 
    X-TENANT: 项目代码/租户代码
请求参数(QueryString):
    apikey: OpenAPI接口调用密钥(DMP-ADMIN中的项目管理中项目信息的OpenApi Key)
返回响应(Response):
{
    "result":true,
    "msg":"ok",
    "data":[
        {
            "id":"39e42f2a-e815-383f-904b-c2e437ac0756",
            "theme":"tech_blue",
            "data_report_id":null,
            "name":"报告名称",
            "type":"FILE",
            "parent_id":"39e42e1f-f4e2-1fb0-7104-8c020d676803",
            "level_code":"0637-0004-",
            "icon":"",
            "platform":"pc",
            "is_multiple_screen":0,
            "status":0,
            "user_group_id":"00000000-0000-0000-1111-000000000000",
            "default_show":0,
            "cover":"",
            "description":"",
            "layout_type":"自由布局",
            "share_secret_key":"",
            "layout":"{"ratio":"16:9","mode":"free","screenHeader":"show","width":1440,"platform":"pc","height":810,"toolbar":"show"}",
            "scale_mode":0,
            "background":"{"image":"","color":"transparent","show":true,"size":"stretch"}",
            "rank":null,
            "build_in":0,
            "biz_code":"4b7ef4012d874190b905ae2b56888108",
            "border":null,
            "type_access_released":0,
            "type_selector":1,
            "refresh_rate":null,
            "created_on":"2018-01-22 16:31:07",
            "created_by":"test",
            "modified_on":"2019-04-20 11:21:55",
            "modified_by":"cc",
            "grid_padding":"{"container_padding":[10,10],"chart_background":"transparent","chart_margin":[10,10],"chart_padding":[15,15,15,15]}",
            "create_type":1,
            "new_layout_type":0,
            "distribute_type":null,
            "is_show_mark_img":0
        }
    ]
}

2、单点登录查看单个报告(DMP接口)

报告必须要采用 “第三方授权” 发布后才可以正常访问,否则会验权未登录重定向到DMP登录界面

查看单个报告(DMP接口):

第三方DMP独立部署环境:第三方DMP独立部署域名

接口(Path): /api/dashboard/login
请求方法(Method): GET
请求参数(QueryString):
    token: 单点登录报告认证token,下面提供Python实现token示例
返回响应(Response):
    成功:跳转到目标单个报告页面
    失败:
    {
        "result": false,
        "msg": "失败提示信息",
        "data": "######",
    }
    常见问题:提示未登录,报告必须是第三方授权方式发布

Python实现token示例:

import jwt
import time
import base64

# jwt加密密钥
jwt_secret = 'XXXXXX'

# jwt加密算法
jwt_alg = 'HS256'

# jwt过期时间,建议过期时间设置为60秒
exp = int(time.time()) + 60

# 用户登录payload数据
payload = {
    "project_code": 租户code,  # (必传参数)租户CODE,用于DMP平台识别当前访问的用户
    "user_name": 用户名, # (非必传参数)第三方系统的用户名,可用于DMP平台某些业务场景(eg.报告的水印显示)
    "user_account": 用户账号, # (非必传参数)DMP平台用户账号,用于用户账号模式访问报告
    "user_auth": "view,download", # (必传参数)对报告的相关访问权限
    "biz_code": 单个报告的biz_code, # (非必传参数)从报告列表报告详细信息获取,用于biz_code模式访问报告
    "exp": 过期截止时间exp # (必传参数)过期时间
}
# 备注1:"user_account"与"biz_code"参数需要至少传入一个,否则接口响应将返回错误
# 备注2:payload内所有参数会在请求响应成功后写入cookie,cookie名为"external_params",用于跳转到报告浏览页的权限校验


# 生成的jwt标准token
jwt_token = jwt.encode(payload, jwt_secret, jwt_alg)

# 对jwt标准token进行base64生成最终: access_token
access_token = base64.b64encode(jwt_token).decode('utf-8')

results matching ""

    No results matching ""