让决策更智能
新一代智能数据分析平台

系统账户集成(下)

观远产品部发表于:2021年03月28日 22:13:36更新于:2021年08月09日 16:43:57

2.21 获取指定用户能访问的数据集列表

    请求方式: POST

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

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
uIdurlString指定用户的Id-

    POST Body Sample:

{
     "token":"sdjfghfodjgjshgfiw23ehrt43" 
}

    Response:

{
    "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": "模拟数据zy",
            "id": "va7e7af8e771247f791bb90f",
            "isInherit": false
        },
       .......
    ]
}

2.22 修改指定用户与各个页面的访问及归属关系

    请求方式: POST

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

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
uIdurlString指定用户的Id-
pagesBodyString需要更改权限的页面列表

    POST Body Sample:

{
    "token":"sdjfghfodjgjshgfiw23ehrt43",
    "pages":[{"pgId":"p34c5a5029903422298c67de","isOwner":false,"isReadable":true}]
}

    pages中,pgId一般在观远页面获取,isOwner设为true表示将此用户设为这个页面的所有者,isReadable设为true表示将此用户设为这个页面的访问者。设置为false,则表示去掉用户对这个页面的相应权限。
Response:

{
    "result": "ok",
    "response": [
        {
            "sources": [
                {
                    "isSelf": true,
                    "id": "u969b654d7cd14610b0b246f",
                    "name": null
                }
            ],
            "isOwner": true,
            "name": "地图卡片",
            "id": "o4f72c9ea74544b52a87931c",
            "isInherit": false
        },
        ……
    ]
}

2.23 修改指定用户与各个数据集的访问及归属关系

    请求方式: POST

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

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
uIdurlString指定用户的Id-
datasetsBodyString需要更改权限的数据集列表

    POST Body Sample:

{
    "token":"sdjfghfodjgjshgfiw23ehrt43",
    "datasets":[{"dsId":"q0138226af8ea46d6825e043","isOwner":false,"isReadable":true}]
}

    datasets中,dsId一般在观远页面获取表示数据集Id,isOwner设为true表示将此用户设为这个数据集的所有者,isReadable设为true表示将此用户设为这个数据集的访问者。设置为false,则表示去掉用户对这个数据集的相应权限。

    Response:

{
    "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
        },
        ……
    ]
}

2.24 获取指定用户组能访问的页面列表

    请求方式: POST

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

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
ugIdurlString指定用户组的Id-
pgTypeurlString指定LARGE_SCREEN则会返回大屏的权限信息,不指定则返回普通页面权限-

    POST Body Sample:

{
     "token":"sdjfghfodjgjshgfiw23ehrt43" 
}

    Response:

{
"result": "ok",
    "response": [
        {
            "sources": [
                {
                    "isSelf": true,
                    "id": "u969b654d7cd14610b0b246f",
                    "name": null
                }
            ],
            "isOwner": true,
            "name": "地图卡片",
            "id": "o4f72c9ea74544b52a87931c",
            "isInherit": false
        },
        {
            "sources": [
                {
                    "isSelf": true,
                    "id": "u969b654d7cd14610b0b246f",
                    "name": null
                }
            ],
            "isOwner": false,
            "name": "【T】bug复现",
            "id": "ia8f878c8bc0d4f86b9e676c"
        },
        ……
    ]
}

2.25 获取指定用户组能访问的数据集列表

    请求方式: POST

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

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
ugIdurlString指定用户组的Id-

    POST Body Sample:

{
     "token":"sdjfghfodjgjshgfiw23ehrt43" 
}

    Response:

{
    "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": "模拟数据zy",
            "id": "va7e7af8e771247f791bb90f",
            "isInherit": false
        },
       .......
    ]
}

2.26 修改指定用户组与各个页面的访问及归属关系

    请求方式: POST

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

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
ugIdurlString指定用户组的Id-
pagesBodyString需要更改权限的页面列表

    POST Body Sample:

{
    "token":"sdjfghfodjgjshgfiw23ehrt43",
    "pages":[{"pgId":"p34c5a5029903422298c67de","isOwner":false,"isReadable":true}]
}

    pages中,pgId一般在观远页面获取,isOwner设为true表示将此用户设为这个页面的所有者,isReadable设为true表示将此用户设为这个页面的访问者。设置为false,则表示去掉用户对这个页面的相应权限。

    Response:

{
        "result": "ok",
    "response": [
        {
            "sources": [
                {
                    "isSelf": true,
                    "id": "u969b654d7cd14610b0b246f",
                    "name": null
                }
            ],
            "isOwner": true,
            "name": "地图卡片",
            "id": "o4f72c9ea74544b52a87931c",
            "isInherit": false
        },
        ……
    ]
}

2.27 修改指定用户组与各个数据集的访问及归属关系

    请求方式: POST

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

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
ugIdurlString指定用户组的Id-
datasetsBodyString需要更改权限的数据集列表

    POST Body Sample:

{
    "token":"sdjfghfodjgjshgfiw23ehrt43",
    "datasets":[{"dsId":"q0138226af8ea46d6825e043","isOwner":false,"isReadable":true}]
}

    datasets中,dsId一般在观远页面获取表示数据集Id,isOwner设为true表示将此用户设为这个数据集的所有者,isReadable设为true表示将此用户设为这个数据集的访问者。设置为false,则表示去掉用户对这个数据集的相应权限。

    Response:

{
"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
        },
        ……
    ]
}

2.28 搜索数据集列表

    请求方式: POST    

    请求地址:POST /public-api/data-source/search?q=xx&&offset=0&&limit=10

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
qurlString要搜索的数据集名称模糊词
offseturlString搜索结果的起始位置默认值0
limiturlString从起始位置取多少条默认值10

    POST Body Sample:

{
     "token":"sdjfghfodjgjshgfiw23ehrt43" 
}

    Response:

{
    "result": "ok",
    "response": {
      "total": 6,
      "offset": 0,
      "limit": 10,
      "list": [
        {
            "dsId": "fe43fdcb1b0094b65b5492dd",
            "name": "dataset_name",
            "displayType": "MYSQL",    //数据集类型
            "storageId": "mfba91c30d7c9455a99df3cd",
            "domId": "demo",
            "uId": "l9c85be354b674ec4a1081cc",    //创建者
            "parentDirId": "i5865e734b8374489abe2fc4",  //所属文件夹
            "cnId": "mysql",          //数据连接类型
            "rowCount": 1000000000,   //行数
            "colCount": 5,  //列数
            "status": "FINISHED",   //更新状态
            "ctime": "2018-07-11 13:50:36+0800",   //创建时间
            "utime": "2018-07-13 11:49:53+0800",   //更新时间
            "cardCount": 0   //卡片数量
        },
        ……
    ]
    }
}

2.29 搜索页面

    请求方式: POST

    请求地址:POST /public-api/page/search?q=xx&&offset=0&&limit=10

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
qurlString要搜索的页面名称模糊词
offseturlString搜索结果的起始位置默认值0
limiturlString从起始位置取多少条默认值10

    POST Body Sample:

{
     "token":"sdjfghfodjgjshgfiw23ehrt43" 
}

    Response:

'{
    "result": "ok",
    "response": {
      "total": 6,
      "offset": 0,
      "limit": 10,
      "list": [
        {
            "pgId": "0ac483ab81b54ce184157100",
            "domId": "demo",
            "name": "集团总览",
            "uId": "d9f1ec1b629946b2b00f1d60",  // 页面创建者
            "pgType": "PAGE",        //页面类型:"OVERVIEW"(概览)、"PAGE"(普通页面)、 "LARGE_SCREEN"(数据大屏)
            "parentDirId": "rc135f11b39a842d8b5475d4",    //页面所属文件夹ID
            "meta": {
                    "authorizedOnMobile": false,//是否发布在移动端
                    "authorizedOnPC": true //是否发布在桌面
                }
        },
        ……
    ]
    }
}

2.30 通过指定的用户的loginid查询对应的uid

    请求方式: POST

    请求地址:POST /public-api/user/info    

    参数说明:

NameLocation类型含义是否必填备注
tokenBodyString账户同步令牌在观远平台中获得
loginIdBodyString用户界面登录以及通过api管理用户属性的id

    POST Body Sample:

{
    "token":"sdjfghfodjgjshgfiw23ehrt43",
    "loginId":  "Id1"
}

Response:

{
    "result": "ok",
    "response": {
        "uId": "uId1",
        "loginId": "Id1",
        "role": [
            "admin"
        ],
        "name": "张三",
        "mobile": "12345678901",
        "domId": "demo",
        "userProperties": {
            "location": "",
            "住址": "",
            "等级": ""
            ...
        },
        "id": 123,
        "email": "张三@guandata.com",
        "pwdVersion": 0
    }
}

2.31 通过指定数据集的id查询该数据集结构

    请求方式:POST

    请求地址:POST /public-api/data-source/:dsId/columns   (需要登陆)

    参数说明:

Name

Location

类型

含义

是否必填

备注

dsId

path

String

数据集Id


X-Auth-Token

header

String


登录token,从sign in接口获取:http://help.guandata.com/hc/kb/article/1519267/

Response

{  
    "name": "id",  
    "fdType": "INT",
    "dsId": "he0545ccda3d64a91bd603d7",  
    "fdId": "kef4c94d4547b474287498c8",  
    "metaType": "METRIC",  
    "seqNo": 0,  
    "isAggregated": false,  
    "calculationType": "normal",  
    "level": "dataset",  
    "isEncrypt": false,  
    "annotation": ""
    },
{  
    "name": "value",  
    "fdType": "STRING",  
    "alias": "value",  
    "dsId": "he0545ccda3d64a91bd603d7",  
    "fdId": "xa20c5a64b95b4fe2aef3c34",  
    "metaType": "DIM",  
    "seqNo": 1,  
    "isAggregated": false,  
    "calculationType": "normal",  
    "level": "dataset",  
    "isEncrypt": false,  
    "annotation": ""
    },
......



2.32 将BI平台用户进行登出

    请求方式:GET

    请求地址:GET /public-api/sso/sign-out

    参数说明:

Name
Location类型含义是否必填备注
providerQuery
String提供者双方约定的一个字符串, 用于识别客户的系统(以下简称甲方系统)
2019/12之后,prodiver即客户在观远的domainId,大小写也要保持一致。
ssoTokenQueryString加密后的用于登录的信息
需要加密,加密方法以及注意事项,请参考:单点登录 - SSO -  2. 加解密方法

Parameters:

{    
    "info": {"ssoToken": ""},
    "provider":"demo"
    }

ssoToken加密前内容示例: 

{
    "domainId":"abcbi",          // 租户ID 必填  (String)
    "externalUserId": "userId",  // 甲方用户ID 必填 (String)
    "timestamp": 1502079219000    // 时间戳 东八区时间 毫(Integer)
    }

 按照约定的方式加密后即生成ssoToken。   

其中,如果用户是调用统一账户集成所述的API创建的,那么当系统的登录方式是 工号登录时, externalUserId 即为 loginId ;当采用email 方式登录时,external user id 即为 email地址。  若有疑问,请联系观远数据解决方案顾问。

Response:

{
    "response":"log out success"
    }

注:  关于SSOtoken加解密的说明:  单点登录 - SSO -  2. 加解密方法


3. 账户集成最佳实践

    以上提供了账户集成的需要的所有接口。作为合理的账户集成方案,我们建议您按照以下最佳实践方式进行账户集成,尽可能减少接口调用失败的情况发生。

步骤一 获取同步令牌

    在观远平台内登录管理员账户,打开统一账户集成功能,获得同步令牌(token)。

步骤二 创建用户组

    一般情况下,我们创建的用户总是要挂到相应的用户组下面去的。如果在调用用户创建接口时,想要直接配置好相关的用户组,则需要事先创建用户组。

    我们建议您调用一次批量创建用户组接口,一次性创建好所有用户组;或者依照用户组的层次关系,从上往下依次创建用户组。这样就可以尽可能降低用户组创建失败的几率。

步骤三 添加扩展用户属性

    观远暂未提供添加扩展用户属性字段的公共接口,如果您有需要,可以在登陆到Web环境内,在管理员设置界面添加您需要的扩展用户属性。

步骤四 添加用户

    由于前两步已经创建好了用户组和扩展用户属性,这一步添加用户时,可以直接在调用批量用户创建接口时将用户组与用户属性一并配置进去。

步骤五 账户体系同步

    我们建议您将观远账户体系同步集成进您的统一账户管理平台中,确保外部系统每一次账户修改都能及时同步至观远平台。



    您需要登录后才可以回复