权限管理

简介

在新版物管理中,我们引入了权限组的概念,权限组拥有对其中包含的所有设备的topic的访问权限。

我们定义了两种权限组的概念,普通权限组和超级权限组。其中,普通权限组即为正常的权限组,可以向权限组内增添删减设备。

而超级权限组则包含对该用户下所有设备的topic访问权限。因而超级权限组不支持组内设备的查看及更新操作。

设备权限组管理

创建权限组

方法 API 说明
POST /v3/iot/management/domain 创建权限组

请求参数

参数名 参数类型 是否必须 说明
name String 必须 权限组名称
description String 必须 权限组的相关说明
type String 必须 权限组的类型,支持ROOT,NORMAL

返回参数

一个AccessDetailResponse实例

请求示例

POST /v3/iot/management/domain HTTP/1.1

Host:iotdm.gz.baidubce.com

Authorization:{authorization}

Content-Type: application/json: charset=utf-8

{

    "name": "myNormalDomain",

    "description": "description",

    "type":"NORMAL"

}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "tcpEndpoint": "tcp://test.baidu.iot.com",

    "sslEndpoint": "ssl://test.baidu.iot.com",

    "wssEndpoint":"wss://test.baidu.iot.com",

    "username": "endpointName/mySuperDomain",

    "key":"bWwCxGwaw3boV48NqsuG+XVaHpxfKdMPvmdJzNObvbY="

}

删除权限组

方法 API 说明
DELETE /v3/iot/management/domain/{domainName} 根据domainName删除权限组

请求示例

DELETE /v3/iot/management/domain/{domainName} HTTP/1.1

Host:iotdm.gz.baidubce.com

Authorization:{authorization}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

获取权限组列表

方法 API 说明
GET GET /v3/iot/management/domain?pageNo=xx&pageSize=xx&order=xx&orderBy=xx&key=xx&type=xx&deviceName=xx 根据条件查询权限组列表

请求参数

参数名 参数类型 是否必须 说明
pageNo int 可选 获取列表在查询结果的页码,默认为1
pageSize int 可选 一页所包含的最大数量,默认为10
order String 可选 查询结果升序或降序排列,asc,desc,默认desc
orderBy String 可选 排序的索引列,name,createTime,lastUpdatedTime,默认createTime
key String 可选 查询关键字,权限组名称
type String 可选 权限组类型,ROOT,NORMAL,ALL,默认是ALL
deviceName String 可选 设备名称,表示查询包含该设备的权限组

返回参数

参数名 参数类型 说明
amount int 权限组总数
pageNo int 当前页码
pageSize int 一页所包含的最大数量
domains List<Domain> 权限组列表

请求示例

GET /v3/iot/management/domain?pageNo=1&pageSize=10&order=desc&orderBy=createTime&key=myDomain&type=NORMAL&deviceName=myDevice HTTP/1.1

Host:iotdm.gz.baidubce.com

Authorization:{authorization}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{
    "amount": 1,
    "pageNo": 1,
    "pageSize": 10,
    "domains": [
        {
            "name": "myDomain",
            "description": " description",
            "type": "NORMAL",
            "createTime": 1494904250000,
            "lastUpdatedTime": 1494904250000,
            "deviceNum": 0
        }
    ]
}

获取权限组详情

方法 API 说明
GET /v3/iot/management/domain/{domainName} 根据名称获取权限组详情

返回参数

一个DomainDetail实例

请求示例

GET /v3/iot/management/domain/{domainName} HTTP/1.1
Host:iotdm.gz.baidubce.com

Authorization:{authorization}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{
    "name": "myDomain",
    "description": " description",
    "type": "NORMAL",
    "createTime": 1494904250000,
    "lastUpdatedTime": 1494904250000,
    "deviceNum": 2,
    "devices": [
        "device-1",
        "device-2"
    ]
}

权限组中更改设备

方法 API 说明
PUT /v3/iot/management/domain/{domainName}?modify 权限组中更改设备

请求参数

参数名 参数类型 是否必须 说明
addedDevices List<String> 可选 需要添加的设备名称列表
removedDevices List<String> 可选 需要移除的设备名称列表

返回参数

参数名 参数类型 是否必须 说明
addedDevices List<String> 可选 成功添加的设备名称列表
removedDevices List<String> 可选 成功移除的设备名称列表

请求示例

PUT  /v3/iot/management/domain/1234939554?modify HTTP/1.1
Host:iotdm.gz.baidubce.com

Authorization:{authorization}

{
    "addedDevices": [
        "device-1",
        "device-2"
    ],
    "removedDevices": [
        "device-3",
        "device-4"
    ]
}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{
    "addedDevices": [
        "device-1",
        "device-2"
    ],
    "removedDevices": [
        "device-3",
        "device-4"
    ]
}

更新权限组注册信息

方法 API 说明
PUT /v3/iot/management/domain/{domainName} 更新注册信息

请求参数

参数名 参数类型 是否必须 说明
description String 必选 需要更新的设备描述信息

请求示例

PUT  /v3/iot/management/domain/1234939554 HTTP/1.1
Host:iotdm.gz.baidubce.com

Authorization:{authorization}

{

    "description":"new description"

}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

获取权限组接入信息

方法 API 说明
GET /v3/iot/management/domain/{domainName}/accessDetail 根据名称获取连接详情

返回参数

一个AccessDetailResponse实例。

请求示例

GET /v3/iot/management/domain/{domainName}/accessDetail HTTP/1.1
Host:iotdm.gz.baidubce.com

Authorization:{authorization}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "tcpEndpoint": "tcp://test.baidu.iot.com",

    "sslEndpoint": "ssl://test.baidu.iot.com",

    "wssEndpoint":"wss://test.baidu.iot.com",

    "username": "endpointName/device_1",

    "key":"xxxxxxxxx"

}

更新权限组密钥

方法 API 说明
PUT /v3/iot/management/domain/{domainName}?updateSecretKey 更改密钥

返回参数

一个AccessDetailResponse实例。

请求示例

PUT /v3/iot/management/domain/{domainName}?updateSecretKey HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json: charset=utf-8

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "tcpEndpoint": "tcp://test.baidu.iot.com",

    "sslEndpoint": "ssl://test.baidu.iot.com",

    "wssEndpoint":"wss://test.baidu.iot.com",

    "username": "endpointName/domainName",

    "key":"bWwCxGwaw3boV48NqsuG+XVaHpxfKdMPvmdJzNObvbY="

}

获取及查询设备列表

方法 API 说明
GET GET /v3/iot/management/domain/{domainName}/devices?pageNo=xx&pageSize=xx&order=xx&orderBy=xx&name=xx&value=xx&favourite=xx 根据条件查询设备列表,返回设备名字、是否存在于权限组内、设备所在普通权限组数目信息

请求参数

参数名 参数类型 是否必须 说明
pageNo int 可选 获取列表在查询结果的页码,默认为1
pageSize int 可选 一页所包含的最大数量,默认为10
order String 可选 查询结果升序或降序排列,asc,desc,默认desc
orderBy String 可选 排序的索引列,name,createTime,lastUpdatedTime,默认createTime
name String 可选 查询属性名
value String 可选 查询属性值
favourite String 可选 收藏,true,false,all,默认all

返回参数

参数名 参数类型 说明
pageNo int 当前页码
pageSize int 一页所包含的最大数量
amount int 设备总数
devices List<DeviceInDomain> 设备列表

请求示例

GET /v3/iot/management/domain/{domainName}/devices?pageNo=1&pageSize=10&orderBy=createTime&order=desc&name=schemaName&value=schema_1&favourite=all HTTP/1.1

Host:iotdm.gz.baidubce.com

Authorization:{authorization}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{
    "amount": 2,
    "pageNo": 1,
    "pageSize": 10,
    "devices": [
        {
            "deviceName": "device_1",
            "existed": true,
            "domainNum": 1
        },
        {
            "deviceName": "device_2",
            "existed": false,
            "domainNum": 2
        }
    ]
}

参数定义

Domain参数列表

参数名 参数类型 说明
name String 权限组名称
description String 权限组说明
type String 权限组的类型,支持ROOT,NORMAL ,二者选其一
createTime long 权限组创建时间
lastUpdatedTime long 权限组更新时间
deviceNum int 权限组包含设备数目

DomainDetail参数列表

参数名 参数类型 说明
Domain对应项 Domain 权限组基本信息
devices List<String> 设备列表

AccessDetailResponse参数列表

参数名 参数类型 说明
tcpEndpoint String tcp协议的物接入endpoint
sslEndpoint String 支持ssl的物接入endpoint
wssEndpoint String 支持wss的物接入endpoint
username String endpointName/thingName
key String 物接入Thing密钥

DeviceInDomain参数列表

参数名 参数类型 说明
deviceName String 设备名称
existed boolean 是否存在于该权限组内
domainNum int 设备被包含在普通权限组内的数目