观远 BI

权限相关API

创建于 2022-10-25 / 最近更新于 2024-08-27 / 6377
字体: [默认] [大] [更大]

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)

请求方式:POST

请求地址:/public-api/user/:uId/get-authorized-pages?pgType=:pgType

3.1.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
uId指定用户的IdurlString--
pgType指定LARGE_SCREEN则会返回大屏的权限信息,不指定(或者指定PAGE)则返回普通页面权限urlString

以QueryString形式传递参数

POST Body Sample:

{
   "token":"xdjfghfodjgjshgfiw23ehrt43"
}

Response Sample:

{
   "result": "ok",
   "response": [
       {
           "id": "o4f72c9ea74544b52a87931c",
           "name": "地图卡片",
           "canExport":false, // true 表示可以导出,false表示不可以导出
           "isOwner": true,
           "isInherit": false,
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ]
       },
       {
           "id": "ia8f878c8bc0d4f86b9e676c",
           "name": "【T】bug复现",
           "isOwner": false,
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ]
       },
       ……
   ]
}

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)

请求方式: POST

请求地址:/public-api/user/:uId/get-authorized-datasets

3.2.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得

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)

请求方式:POST

请求地址:/public-api/user/:uId/modify-authorized-pages

3.3.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
uId指定用户的IdurlString--
pages需要更改权限的页面列表BodyString仪表板与大屏对应的ID

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)

请求方式:POST

请求地址:/public-api/user/:uId/modify-authorized-datasets

3.4.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
uId指定用户的IdurlString--
datasets需要更改权限的数据集列表BodyString--

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)

请求方式:POST

请求地址:/public-api/user-group/:ugId/get-authorized-pages?pgType=:pgType

3.5.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
ugId指定用户组的IdurlString--
pgType指定LARGE_SCREEN则会返回大屏的权限信息,不指定则返回普通页面权限urlString--

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)

请求方式:POST

请求地址:/public-api/user-group/:ugId/get-authorized-datasets

3.6.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得

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)

请求方式:POST

请求地址:/public-api/user-group/:ugId/modify-authorized-pages

3.7.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
ugId指定用户组的IdurlString--
pages需要更改权限的页面列表BodyString--

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)

请求方式: POST

请求地址:POST /public-api/user-group/:ugId/modify-authorized-datasets

3.8.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
uId指定用户的IdurlString--
datasets需要更改权限的数据集列表BodyString--

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应用TokenBODYString在观远平台中获得
domId域IDBODYString默认guanbi
operatorLoginId操作者登录IDBODYString如果不填写,默认以管理员名义进行权限的操作;审计
operations权限策略BODYString数组
op权限操作类型BODYString

删除权限 RemoveAuthOp

添加权限 AddAuthOp

subjectTye操作对象账号类型BODYString

外部用户组ID ExternalUserGroups

内部用户组ID InternalUserGroups

用户登录账号 LoginUsers

内部用户ID InternalUsers

subjectIds操作对象账号BODYString数组支持放入多个账号
resourceType资源类型BODYString

据账户 ACCOUNT

文件夹 DIRECTORY

移动轻应用 CUSTOM_APP

桌面应 WEB_PORTAL_APP

directoryType文件夹类型BODYString当资源类型为【文件夹】时,需要设置文件夹类型。目前仅支持页面(PAGE)的文件夹。
resourceIds资源IDBODYString数组支持放入多个资源ID
aclType权限类型BODYString

所有者 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" }
 ]
}

返回体中包含一个数组,分别对应请求里不同处理要求的结果。 


2 人点赞过