明源四云与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数据源接入指南