权限相关API
1. 权限相关API 概述
Public API,是指观远数据为系统集成提供的标准化开放接口。系统集成,通常是指将各个分离的设备(如个人电脑)、系统、功能和信息等集成到相互关联的、统一和协调的系统之中,使资源达到充分共享,实现集中、高效、便利的管理。系统集成实现的关键在于解决系统之间的互连和互操作性问题,是一个多厂商、多协议和面向各种应用的体系结构。
观远数据提供一套简便的验证机制,来供私有化部署用户进行外部系统和账户对接集成,实现集中、高效、便利的管理。本文将为您详细介绍观远数据为您提供的与权限相关的 Public API。
2. 权限相关API 列表速览
目前,与权限相关的 Public API 共包含9个,列表如下:
序号 | 接口描述 | PATH |
1 | 获取指定用户能访问的页面列表 | POST /public-api/user/:uId/get-authorized-pages |
2 | 获取指定用户能访问的数据集列表 | POST /public-api/user/:uId/get-authorized-datasets |
3 | 修改指定用户与各个页面的访问及归属关系 | POST /public-api/user/:uId/modify-authorized-pages |
4 | 修改指定用户与各个数据集的访问及归属关系 | POST /public-api/user/:uId/modify-authorized-datasets |
5 | 获取指定用户组能访问的页面列表 | POST /public-api/user-group/:ugId/get-authorized-pages |
6 | 获取指定用户组能访问的数据集列表 | POST /public-api/user-group/:ugId/get-authorized-datasets |
7 | 修改指定用户组与各个页面的访问及归属关系 | POST /public-api/user-group/:ugId/modify-authorized-pages |
8 | 修改指定用户组与各个数据集的访问及归属关系 | POST /public-api/user-group/:ugId/modify-authorized-datasets |
9 | 通用资源权限授权与解除 | POST /public-api/common-auth/control |
3. 权限相关API 具体说明
3.1 获取指定用户能访问的页面列表 (1019)
3.1.1 接口简介
请求方式:POST
请求地址:/public-api/user/:uId/get-authorized-pages?pgType=:pgType
3.1.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | Body | String | 是 | 在观远平台中获得 |
uId | 指定用户的Id | url | String | 是 | -- |
pgType | 指定LARGE_SCREEN则会返回大屏的权限信息,不指定(或者指定PAGE)则返回普通页面权限 | url | String | 否 | 以QueryString形式传递参数 |
3.1.3 请求与响应示例
POST Body Sample:
{
"token":"xdjfghfodjgjshgfiw23ehrt43"
}
Response Sample:
{
"result": "ok",
"response": [
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "地图卡片",
"id": "o4f72c9ea74544b52a87931c",
"isInherit": false,
"canExport":false // true 表示可以导出,false表示不可以导出
},
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": false,
"name": "【T】bug复现",
"id": "ia8f878c8bc0d4f86b9e676c"
},
……
]
}
Response返回的是个json object,其中result表示执行结果,response是返回的内容。response是个json array,每个单项的json对象里面,id是指资源的id(页面或者数据集),name是这个资源的名称,isOwner是个bool值,true表示是此资源的所有者。isInherit是指此资源是否是从用户组那里继承来的,如果是true,则sources里面会记录是从哪个用户组那里继承而来。如果是false,sources里面记录的是自己的用户信息。sources里面id是用户或者用户组的id,name是名字,isSelf是指是否是自己这个用户或者用户组。权限相关的其他API的response返回值的含义,均可参考此处。
3.2 获取指定用户能访问的数据集列表(1020)
3.2.1 接口简介
请求方式: POST
请求地址:/public-api/user/:uId/get-authorized-datasets
3.2.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | Body | String | 是 | 在观远平台中获得 |
3.2.3 请求与响应示例
POST Body Sample:
{
"token":"p3a369b32444b48caa873411",
}
Response Sample:
{
"result": "ok",
"response": [
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "feedtest",
"id": "c18baf7eaf7f848f881102e6",
"canExport":false, // true 表示可以导出,false表示不可以导出
"isInherit": false
},
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "模拟数据zy",
"id": "va7e7af8e771247f791bb90f",
"isInherit": false
},
.......
]
}
3.3 修改指定用户与各个页面的访问及归属关系(1022)
3.3.1 接口简介
请求方式:POST
请求地址:/public-api/user/:uId/modify-authorized-pages
3.3.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | Body | String | 是 | 在观远平台中获得 |
uId | 指定用户的Id | url | String | 是 | -- |
pages | 需要更改权限的页面列表 | Body | String | 否 | 仪表板与大屏对应的ID |
3.3.3 请求与响应示例
POST Body Sample:
{
"token":"sdjfghfodjgjshgfiw23ehrt43",
"pages":[{"pgId":"p34c5a5029903422298c67de","isOwner":false,"isReadable":true,"isExportable":true}]
}
pages中,pgId一般在观远页面获取,isOwner设为true表示将此用户设为这个页面的所有者,isReadable设为true表示将此用户设为这个页面的访问者,设置为false,则表示去掉用户对这个页面的相应权限;isExportable 表示是否可以导出(true表示可以导出;false表示不可以导出)。
Response Sample:
返回用户可以访问的所有页面列表。
{
"result": "ok",
"response": [
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "地图卡片",
"id": "o4f72c9ea74544b52a87931c",
"isInherit": false
},
……
]
}
3.4 修改指定用户与各个数据集的访问及归属关系(1023)
3.4.1 接口简介
请求方式:POST
请求地址:/public-api/user/:uId/modify-authorized-datasets
3.4.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | Body | String | 是 | 在观远平台中获得 |
uId | 指定用户的Id | url | String | 是 | -- |
datasets | 需要更改权限的数据集列表 | Body | String | 否 | -- |
3.4.3 请求与响应示例
POST Body Sample:
{
"token":"sdjfghfodjgjshgfiw23ehrt43",
"datasets":[{"dsId":"q0138226af8ea46d6825e043","isOwner":false,"isReadable":true,"isExportable":true}]
}
datasets中,dsId一般在观远页面获取表示数据集Id,isOwner设为true表示将此用户设为这个数据集的所有者,isReadable设为true表示将此用户设为这个数据集的访问者,设置为false,则表示去掉用户对这个数据集的相应权限;isExportable 表示是否可以导出(true表明可以导出;false表明不可以导出)。
Response Sample:
{
"result": "ok",
"response": [
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "feedtest",
"id": "c18baf7eaf7f848f881102e6",
"isInherit": false
},
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "123",
"id": "tdf9f50e6aa2945fda15a023",
"isInherit": false
},
……
]
}
3.5 获取指定用户组能访问的页面列表 (1024)
3.5.1 接口简介
请求方式:POST
请求地址:/public-api/user-group/:ugId/get-authorized-pages?pgType=:pgType
3.5.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | Body | String | 是 | 在观远平台中获得 |
ugId | 指定用户组的Id | url | String | 是 | -- |
pgType | 指定LARGE_SCREEN则会返回大屏的权限信息,不指定则返回普通页面权限 | url | String | 否 | -- |
3.5.3 请求与响应示例
POST Body Sample:
{
"token":"sdjfghfodjgjshgfiw23ehrt43"
}
Response Sample:
{
"result": "ok",
"response": [
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "地图卡片",
"id": "o4f72c9ea74544b52a87931c",
"canExport":false, // true 表示可以导出,false表示不可以导出
"isInherit": false
},
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": false,
"name": "【T】bug复现",
"id": "ia8f878c8bc0d4f86b9e676c"
},
……
]
}
3.6 获取指定用户组能访问的数据集列表(1025)
3.6.1 接口简介
请求方式:POST
请求地址:/public-api/user-group/:ugId/get-authorized-datasets
3.6.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | Body | String | 是 | 在观远平台中获得 |
3.6.3 请求与响应示例
POST Body Sample:
{
"token":"sdjfghfodjgjshgfiw23ehrt43"
}
Response Sample:
{
"result": "ok",
"response": [
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "feedtest",
"id": "c18baf7eaf7f848f881102e6",
"canExport":false, // true 表示可以导出,false表示不可以导出
"isInherit": false
},
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "模拟数据zy",
"id": "va7e7af8e771247f791bb90f",
"isInherit": false
},
.......
]
}
3.7 修改指定用户组与各个页面的访问及归属关系(1026)
3.7.1 接口简介
请求方式:POST
请求地址:/public-api/user-group/:ugId/modify-authorized-pages
3.7.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | Body | String | 是 | 在观远平台中获得 |
ugId | 指定用户组的Id | url | String | 是 | -- |
pages | 需要更改权限的页面列表 | Body | String | 否 | -- |
3.7.3 请求与响应示例
POST Body Sample:
{
"token":"sdjfghfodjgjshgfiw23ehrt43",
"pages":[{"pgId":"p34c5a5029903422298c67de","isOwner":false,"isReadable":true,"isExportable":true}]
}
pages中,pgId一般在观远页面获取,isOwner设为true表示将此用户设为这个页面的所有者;isReadable设为true表示将此用户设为这个页面的访问者,设置为false,则表示去掉用户对这个页面的相应权限;isExportable 表示是否可以导出。
Response Sample:
{
"result": "ok",
"response": [
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "地图卡片",
"id": "o4f72c9ea74544b52a87931c",
"isInherit": false
},
……
]
}
3.8 修改指定用户组与各个数据集的访问及归属关系(1027)
3.8.1 接口简介
请求方式: POST
请求地址:POST /public-api/user-group/:ugId/modify-authorized-datasets
3.8.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | Body | String | 是 | 在观远平台中获得 |
uId | 指定用户的Id | url | String | 是 | -- |
datasets | 需要更改权限的数据集列表 | Body | String | 否 | -- |
3.8.3 请求与响应示例
POST Body Sample:
{
"token":"sdjfghfodjgjshgfiw23ehrt43",
"datasets":[{"dsId":"q0138226af8ea46d6825e043","isOwner":false,"isReadable":true,"isExportable":true}]
}
datasets中,dsId一般在观远页面获取表示数据集Id,isOwner设为true表示将此用户设为这个数据集的所有者,isReadable设为true表示将此用户设为这个数据集的访问者。设置为false,则表示去掉用户对这个数据集的相应权限;isExportable 表示是否可以导出。
Response Sample:
{
"result": "ok",
"response": [
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "feedtest",
"id": "c18baf7eaf7f848f881102e6",
"isInherit": false
},
{
"sources": [
{
"isSelf": true,
"id": "u969b654d7cd14610b0b246f",
"name": null
}
],
"isOwner": true,
"name": "123",
"id": "tdf9f50e6aa2945fda15a023",
"isInherit": false
},
……
]
}
3.9 通用资源权限授权与解除
3.9.1 接口简介
请求方式:POST
请求地址:/public-api/common-auth/control
特别说明:
-
该接口目前仅支持以下资源类型:数据账户、仪表板文件夹、移动轻应用、桌面应用(6.3 版本开始支持)
-
该接口支持批量设置账号ID与资源ID,但数量不宜过多,一般建议少于100
3.9.2 参数说明
参数名 | 参数值说明 | Location | 类型 | 是否必填 | 备注 |
token | 应用Token | BODY | String | 是 | 在观远平台中获得 |
domId | 域ID | BODY | String | 否 | 默认guanbi |
operatorLoginId | 操作者登录ID | BODY | String | 否 | 如果不填写,默认以管理员名义进行权限的操作;审计 |
operations | 权限策略 | BODY | String数组 | 是 | |
op | 权限操作类型 | BODY | String | 是 | 删除权限 RemoveAuthOp添加权限 AddAuthOp |
subjectTye | 操作对象账号类型 | BODY | String | 是 | 外部用户组ID ExternalUserGroups内部用户组ID InternalUserGroups用户登录账号 LoginUsers内部用户ID InternalUsers |
subjectIds | 操作对象账号 | BODY | String数组 | 是 | 支持放入多个账号 |
resourceType | 资源类型 | BODY | String | 是 | 数据账户 ACCOUNT文件夹 DIRECTORY移动轻应用 CUSTOM_APP桌面应 WEB_PORTAL_APP |
directoryType | 文件夹类型 | BODY | String | 否 | 当资源类型为【文件夹】时,需要设置文件夹类型。目前仅支持页面(PAGE)的文件夹。 |
resourceIds | 资源ID | BODY | String数组 | 是 | 支持放入多个资源ID |
aclType | 权限类型 | BODY | String | 是 | 所有者 RESOURCE_MANAGER访问者RESOURCE_USER导出者RESOURCE_EXPORTER |
3.9.3 请求与响应示例
POST Body Sample:
{
"domId": "guanbi",
"operatorLoginId": "a@abc.com",
"operations": [
{
"op": "AddAuthOp",
"subjectIds": ["b@abc.com", "c@abc.com", "d@abc.com"],
"subjectType": "LoginUsers",
"aclType": "RESOURCE_MANAGER",
"resourceIds": ["r1", "r2", "r3"],
"resourceType": "ACCOUNT"
}
]
}
{
"domId": "guanbi",
"operatorLoginId": "a@abc.com",
"operations": [
{
"op": "AddAuthOp",
"subjectIds": ["b@abc.com", "c@abc.com", "d@abc.com"],
"subjectType": "LoginUsers",
"aclType": "RESOURCE_MANAGER",
"resourceIds": ["r1", "r2", "r3"],
"resourceType": "DIRECTORY",
"directoryType": "PAGE"
}
]
}
Response Sample:
{
"res": [
{ "succeed": true },
]
}
{
"res": [
{ "succedd": false, "msg": "xxx" }
]
}
返回体中包含一个数组,分别对应请求里不同处理要求的结果。