设备接入 IoTDA
设备接入 IoTDA
- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
自定义模板示例
示例1
证书认证设备,不限制UserName与ClientId参数取值,从设备证书通用名称(Common Name)中取值设备ID。
参数 |
说明 |
---|---|
Client ID |
任意值 |
User Name |
任意值 |
Password |
空值 |
鉴权模板:
{ "template_name": "template1", "description": "template1", "template_body": { "parameters": { "iotda::certificate::common_name": { "type": "String" } }, "resources": { "device_id": { "Ref": "iotda::certificate::common_name" } } } }
示例2
设备ID格式为:${ProductId}_${NodeId}。
参数 |
说明 |
---|---|
Client ID |
固定格式: ${ClientId}|securemode=2,signmethod=hmacsha256|timestamp=${timestamp}|
|
User Name |
由设备标识码和产品ID组成,固定格式: ${NodeId}&${ProductId} |
Password |
以设备密码为密钥,将设备参数与参数值拼接后的字符串为加密串进行hmacsha256算法加密。 加密串格式: clientId${clientId}deviceName${nodeId}productKey${productId}timestamp${timestamp}
|
鉴权模板:
{ "template_name": "template2", "description": "template2", "template_body": { "parameters": { "iotda::mqtt::client_id": { "type": "String" }, "iotda::mqtt::username": { "type": "String" }, "iotda::device::secret": { "type": "String" } }, "resources": { "device_id": { "Fn::Join": [{ "Fn::SplitSelect": [ "${iotda::mqtt::username}", "&", 1 ] }, "_", { "Fn::SplitSelect": [ "${iotda::mqtt::username}", "&", 0 ] }] }, "timestamp": { "type": "UNIX", "value": { "Fn::MathDiv": [{ "Fn::ParseLong": { "Fn::SplitSelect": [{ "Fn::SplitSelect": ["${iotda::mqtt::client_id}", "|", 2] }, "=", 1] } }, 1000] } }, "password": { "Fn::HmacSHA256": [{ "Fn::Sub": [ "clientId${clientId}deviceName${deviceName}productKey${productKey}timestamp${timestamp}", { "clientId": { "Fn::SplitSelect": [ "${iotda::mqtt::client_id}", "|", 0 ] }, "deviceName": { "Fn::SplitSelect": [ "${iotda::mqtt::username}", "&", 0 ] }, "productKey": { "Fn::SplitSelect": [ "${iotda::mqtt::username}", "&", 1 ] }, "timestamp": { "Fn::SplitSelect": [{ "Fn::SplitSelect": ["${iotda::mqtt::client_id}", "|", 2] }, "=", 1] } } ] }, "${iotda::device::secret}" ] } } } }
示例3
设备ID格式为:${productId}${nodeId}。
参数 |
说明 |
---|---|
Client ID |
固定格式: ${productId}${nodeId}
|
User Name |
固定格式: ${productId}${nodeId};12010126;${connid};${expiry}
|
Password |
固定格式: ${token};hmacsha256
|
鉴权模板:
{ "template_name": "template3", "description": "template3", "template_body": { "parameters": { "iotda::mqtt::client_id": { "type": "String" }, "iotda::mqtt::username": { "type": "String" }, "iotda::device::secret": { "type": "String" } }, "resources": { "device_id": { "Ref": "iotda::mqtt::client_id" }, "timestamp": { "type": "UNIX", "value": { "Fn::ParseLong": { "Fn::SplitSelect": ["${iotda::mqtt::username}", ";", 3] } } }, "password": { "Fn::Sub": [ "${token};hmacsha256", { "token": { "Fn::HmacSHA256": [ "${iotda::mqtt::username}", { "Fn::Base64Decode": "${iotda::device::secret}" } ] } } ] } } } }
父主题: MQTT(S)协议-自定义模板鉴权