明源四云与DMP打通方案

前言说明

DMP与四云之间的打通场景目前有以下几种:

1.免登陆访问DMP报告(签名验证)

四云在dmp系统内做好报告,并把报告挂载四云站点里,对应租户的用户可以点击挂载的报告,并查看报告。

2. 免登陆全部权限模式(sso模式)

四云可用自己的产品用户接入DMP,并可直接从产品里免登陆跳转dmp制作报告等

使用角色租户的用户

3. 四云多租户聚合模式

四云需要统计各个租户之间运营情况,并汇总到统一的报告里,需要使用saas数据源,并采用离线大数据采集汇总到dmp数据集里

使用角色四云运营人员

4.四云制作的dmp采用api数据集(偏技术)

api数据集方式使用远程调用四云提供的api(dmp提供SDK)

使用角色四云开发人员&报告制作人


一、 免登陆访问DMP报告(签名验证)

DMP打通方式是以,四云在DMP创建好的报告,可以以链接方式无缝挂接到其他云的系统站点里。链接里带有jwt验证方式,确保报告数据安全。

通信过程如下:

签名验证

1、请求获取报告列表

签名验证

报告列表接口:

URL: https://dmp-openapi-test.mypaas.com.cn/openapi/dashboard/list/ # 测试环境
     https://dmp-openapi.mypaas.com.cn/openapi/dashboard/list/ # 生产环境
METHOD: GET
REQUEST_HEADERS:
    X-TENANT: {租户code}
PARAMS:
    apikey: {租户的OpenApiKey} # 在dmp-admin中的租户设置中生成,从dmp-admin获取

2、四云用户在自己站点查看DMP单个报告

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

签名验证

查看报告接口:

URL: https://dmp-test.mypaas.com.cn/api/dashboard/login/ # 测试环境
     https://dmp.mypaas.com.cn/api/dashboard/login/ # 生产环境
METHOD: GET
PARAMS:
    token: JWT_Token
        # JWT_Token生成说明:
        签名算法alg:HS256
        签名加密密钥secret: 请联系相关对接人员获取
        用户payload:
            {
                "project_code": 租户code,
                "user_account": 用户账户名,
                "user_auth": "view,download", # 对报告的相关访问权限
                "biz_code": 单个报告的biz_code, # 从报告列表报告详细信息获取
                "exp": 过期截止时间, # INT类型: 当前时间戳 + 过期时长
            }
        标准的token格式: headers.payload.signature
        这里的JWT_Token格式: base64.encode(####.####.####) # 对JWT_Token进行base64编码

Python生成token示例:

import jwt
import time
import base64

jwt_secret = 'XXXXXX'     #JWT加密密钥
jwt_alg = 'HS256'     #JWT加密算法
exp = int(time.time()) + 60    #jwt过期时间,建议过期时间设置为60秒
payload = {
    'exp': exp, # 过期时间,必须

    # 以下为载体用户相关信息,根据相应的登录入口作相应的调整
    'project_code': 'test',
    'user_account': 'test',
    'biz_code': 'XXXXXXXXXXXXXXXXXXXXXXXXXXX',
    'user_auth': 'view,download',
}
jwt_token = jwt.encode(payload, jwt_secret, jwt_alg)  #JWT库的标准生成token
token = base64.b64encode(jwt_token).decode('utf-8')  #对jwt_token进行base64编码并转换为为字符串

二、 免登陆全部权限模式(sso模式)

签名验证

相关接口如下:

1.DMP功能权限元数据接口:
    URL:https://dmp-openapi-test.mypaas.com.cn/openapi/rbac/funcs/list # 测试环境
          https://dmp-openapi.mypaas.com.cn/openapi/rbac/funcs/list # 生产环境
    METHOD: GET
       REQUEST_HEADERS:
        X-TENANT: {租户code}
    PARAMS:
        apikey: {租户的OpenApiKey} # 在dmp-admin中的租户设置中生成,从dmp-admin获取


2.添加更新DMP角色,同时设置角色权限接口:
    URL:https://dmp-openapi-test.mypaas.com.cn/openapi/user/role/upset # 测试环境
          https://dmp-openapi.mypaas.com.cn/openapi/user/role/upset # 生产环境
    METHOD: POST
    REQUEST_HEADERS:
        X-TENANT: {租户code}
        Content-Type: application/json
    PARAMS:
        apikey: {租户的OpenApiKey} # 在dmp-admin中的租户设置中生成,从dmp-admin获取
    BODY:
        {
           "role_name": "管理员",
           "funcs": 
               [
                    {
                        "func_code": "flow-ops", "func_action_codes":["write", "read"]
                    },
                    ...
                ]
          }


3.添加/更新用户接口: 
    URL: https://dmp-openapi-test.mypaas.com.cn/openapi/user/upset # 测试环境
          https://dmp-openapi.mypaas.com.cn/openapi/user/upset # 生产环境
    METHOD: POST
    REQUEST_HEADERS:
        X-TENANT: {租户code}
        Content-Type: application/json
    PARAMS:
        apikey: {租户的OpenApiKey} # 在dmp-admin中的租户设置中生成,从dmp-admin获取
    BODY:
        {
            "name": "张三",
            "account": "mysoft01",

            # 以下为可选参数
            "group_id": "39e3c8c9-ac60-58d3-7e1d-bd533eb863e8",
            "email": "mysoft01",
            "role_name": "管理员"
          }


4.单点登录DMP站点接口:
    URL: https://dmp-test.mypaas.com.cn/api/user/sso/login/ # 测试环境
        https://dmp.mypaas.com.cn/api/user/sso/login/ # 生产环境
    METHOD: GET
    PARAMS: 
        access_token: dmp单点登录token, token生成方式请参照上面的免登录查看报告中的说明以及python实现
            用户payload:
                {
                    "tenant_code": 租户code,
                    "account": 用户名,
                    "redirect": 重定向跳转链接,
                }
        _from: 来源

三、 四云多租户聚合模式

四云多租户聚合模式

签名验证

四、 api数据集打通

打通过程请访问 API数据源接入指南

results matching ""

    No results matching ""