设备预配
更新时间:2021-10-11
概述
本文介绍如何通过控制台创建和管理 IoT Core 的设备预配功能。此功能已在 IoT Core 官方 Android SDK 中集成,可通过工单申请。若使用其他语言 SDK 或开源 SDK 可通过下述接口对接。
设备注册
注册组创建完成后,设备侧可以调用API接口实现云端设备注册,注册成功后云端下发设备注册信息,设备侧可根据设备信息选择不同协议连接物联网平台进行数据收发。
设备注册时支持使用百度托管(默认)或者自有证书方式,如使用后者可提交工单申请获取文档。
设备注册
用于设备侧设备注册操作。
POST /v1/provision/group
请求参数
名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
TaskId | string | 必选 | 为系统在租户开通物联网核心套件时为租户分配唯一编号ID 及 客户为注册组ID同创建注册组时指定名称 |
deviceName | string | 必选 | 注册设备名 |
signature | string | 必选 | 签名字符串 |
timestamp | long | 可选 | 签名时间戳,单位为秒,默认0可不传(当设备侧无时钟服务时可选择不传时间戳,此时间戳无需保证精确但必须保证与注册服务前后不超过5分钟偏移量) |
algorithmType | string | 可选 | 签名算法,支持“MD5”和”SHA256“,默认取值为”MD5“,代表签名算法为MD5方式 |
其中 TaskId 及计算 signature 所需字段可从注册组详情页获取以上信息,具体如下:
signature生成
signature生成分为两部分,根据加密字符串格式组合加密字符串得到加密字符串后根据签名算法生成签名字符串,具体过程如下:
组合加密字符串
{deviceName}&{timestamp}&{algorithmType}{TaskSecret}
其中:
- {deviceName}:标识设备名
- {timestamp}:签名时的时间戳,以秒(s)为单位,长整数。如果无时钟服务,可以不用传入正确的时间戳,但必须传入0进行占位且在组合username时不传入对应timestamp值。
- {algorithmType}:签名算法类型,取值MD5或者SHA256。
- {TaskSecret}: 注册组详情页密钥
- 签名加密字符串
- 签名使用MD5或者SHA256对加密字符串进行加密并经过转化后得到签名字符串,具体过程如下:
- 获取加密字符串的UTF-8字符集比特数组
- 对1中得到比特数组使用MD5或者SHA256进行加密(此处必须使用与传入加密字符串相同的算法进行加密)
- 将上一步结果转换为小写形式的十六进制字符串得到最终签名字符串
返回值
名称 | 类型 | 描述 |
---|---|---|
iotCoreId | string | 注册设备所属iotCore实例ID |
deviceKey | string | 设备key |
authType | string | 设备认证的类型,取值为SIGNATURE和CERTIFICATE,分别代表密钥方式和证书方式~~~~ |
deviceSecret | string | 生成的DeviceSecret(当设备认证方式为SIGNATURE时返回此值) |
deviceGroupKey | string | 设备所有设备组标签 |
devicePrivateKey | string | 字符串格式设备私钥(当设备认证方式为CERTIFICATE时返回此值) |
deviceClientCrt | string | 字符串格式设备侧证书(当设备认证方式为CERTIFICATE时返回此值) |
tcp | string | tcp协议接入物联网平台地址 |
ssl | string | ssl协议接入物联网平台地址 |
wss | string | wss协议接入物联网平台地址 |
请求示例
Host: iot.baidubce.com
Content-Type: application/json; charset=utf-8
{
"taskId":"xxx",
"deviceName": "设备名",
"timestamp": 1612434222,
"signature": "签名字符串",
"algorithmType": "MD5"
}
返回示例
{
"iotCoreId": "xxx",
"deviceKey": "nedojde",
"authType": "SIGNATURE",
"deviceGroupKey": "组名称",
"deviceSecret": "这是设备密钥",
"tcp": "tcp://xxx.iot.gz.baidubce.com:1883",
"ssl": "ssl://xxx.iot.gz.baidubce.com:1884",
"wss": "wss://xxx.iot.gz.baidubce.com:443"
}
控制台操作
创建模板
- 登录物联网核心套件控制台。
- 在页面的左侧导航栏,选择 设备预配,进入模板列表页面。
- 点击 新增注册组,在对应页面中中输入“名称”、选择设备要注册的实例、“认证方式”及”模板“后,点击 提交 即可创建。
- 实例创建成功后,可在注册组列表页面查看刚才创建的注册组实例,其中第一列展示了其名称,第二列显示了设备认证方式,创建成功后状态为“启用”,可以执行禁用和删除操作。
注意:禁用后设备侧将不能通过此注册组进行注册直到再次启用注册组;删除操作将会删除此注册组设备侧将不能再通过此注册组进行注册但不会影响已注册设备,禁用、启用、删除操作设备侧生效时间设定为最大1分钟
修改注册组
- 登录物联网核心套件控制台。
- 进入“设备预配”页面,选择您要修改信息注册组的实例,点击注册组名称 ,进入详情页面。
- 在详情页中,您可以点击“描述”后的铅笔图标按钮,输入新的描述内容,然后点击编辑框外任意一处,页面提示“更新成功”,完成修改
禁用注册组
注意事项
实例停用后,物联网核心套件平台中,与该注册组实例关联的信息依然保留。但是设备侧将无法通过此注册组进行注册,请谨慎操作。
- 登录物联网核心套件控制台,进入“设备预配”。
- 进入“实例列表”,选择您要停用的实例,点击操作栏的 “禁用”按钮。
- 点击禁用后,页面提示“禁用成功”,注册组实例已被禁用。
启用注册组
- 禁用实例后,您还可以重新启用实例,即解除注册组禁用。
- 登录物联网核心套件控制台,进入设备预配。
- 进入“注册组列表”,选择您要启动的已禁用的注册组实例,点击操作栏的 启用按钮。
- 点击启用后,页面提示“启用成功”,注册组实例已经启动。
删除注册组
- 登录物联网核心套件控制台,进入设备预配,当注册组实例处于禁用状态时,可对注册组实例进行删除操作。
- 进入“设备预配”,选择您要删除的实例,点击操作栏的禁用按钮。
- 当注册组实例被禁用后,操作栏显示 删除 和 启用按钮。
- 点击 删除 按钮,页面弹出手机验证码安全验证弹窗,填写验证码后,点击 确定 ,页面提示“删除项目成功”,完成删除实例。