- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
自定义模板鉴权使用说明
使用说明

操作步骤
- 创建鉴权模板:进入设备接入控制台左侧导航栏,选择“设备 > 自定义鉴权”,单击“自定义模板”,单击“创建鉴权模板”。本示例演示使用的鉴权模板与系统默认鉴权一致。
图2 自定义鉴权-创建鉴权模板
模板整体内容如下:
{ "template_name": "system-default-auth", "description": "华为云IoTDA系统默认鉴权模板示例", "status": "ACTIVE", "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::username" }, "timestamp": { "type": "FORMAT", "pattern": "yyyyMMddHH", "value": { "Fn::SubStringAfter": [ "${iotda::mqtt::client_id}", "_0_1_" ] } }, "password": { "Fn::HmacSHA256": [ "${iotda::device::secret}", { "Fn::SubStringAfter": [ "${iotda::mqtt::client_id}", "_0_1_" ] } ] } } } }
表1 鉴权模板参数信息 参数
参数名称
是否必填
描述
template_name
模板名称
是
鉴权模板名称,单个用户下模板名称不能重复,长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。
description
描述
否
鉴权模板的描述信息,长度不超过2048,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。
status
状态
否
是否激活该模板,默认状态为未激活,一个用户下只能有一个已激活状态的模板。
parameters
参数
是
平台预定义的MQTT连接参数列表,当设备使用密码认证时模板必须包含设备原始密钥参数(iotda::device::secret)。
平台预定义了如下参数:
iotda::mqtt::client_id :mqtt连接参数三元组中的Client Id
iotda::mqtt::username :mqtt连接参数三元组中的User Name
iotda::certificate::country : 设备证书(国家/地区,C )
iotda::certificate::organization : 设备证书(组织,O)
iotda::certificate::organizational_unit : 设备证书(组织单位,OU)
iotda::certificate::distinguished_name_qualifier : 设备证书(可辨别名称限定符,dnQualifier)
iotda::certificate::state_name : 设备证书(省市,ST)
iotda::certificate::common_name : 设备证书(公用名,CN)
iotda::certificate::serial_number : 设备证书(序列号,serialNumber)
iotda::device::secret :表示设备原始密钥
device_id
设备ID函数
是
设备ID取值函数,JSON格式,平台通过解析该函数获取对应设备信息。
timestamp
是否开启时间戳校验
否
是否校验设备连接信息中的时间戳,如果设备连接参数(clientId、username)中包含时间戳建议开启校验。开启校验平台会对比设备携带时间戳与平台系统时间,若设备时间戳加一小时小于平台系统时间则校验失败。
type
时间戳类型
否
UNIX:表示时间戳格式为Unix时间戳,长整型,单位秒。
FORMAT:格式化时间戳类型,比如:2024-03-28 11:47:39、2024/03/28 03:49:13
pattern
时间戳格式
否
时间格式模板,时间戳类型为FORMAT时必填,具体字符含义如下:
y:年
M:月
d:日
H:时
m:分
s:秒
S:毫秒
示例:yyyy-MM-dd HH:mm:ss、yyyy/MM/dd HH:mm:ss
value
时间戳取值函数
否
开启时间戳校验后必填,设备时间戳获取函数,平台通过执行该函数获取设备建链时的时间戳。
password
MQTT密码函数
否
密码函数,当设备认证类型为密钥认证时必填,且模板参数中必须包含设备原始密钥参数(iotda::device::secret),当设备为证书认证时可不填。设备认证类型参考注册设备。平台把设备原始密钥等参数填入函数计算结果,若函数结果与设备建链携带的password参数一致则认证通过,否则认证失败。
- 选择设备调试模板:单击“调试”选择一个设备进行调试,输入mqtt连接参数后单击“调试”查看调试结果。注意:使用系统标准格式的clientId平台会校验username参数与clientId前缀一致。
图3 自定义模板-调试
设备调试成功后单击“激活”启用模板,一旦激活模板所有设备鉴权将使用该模板,且已激活状态下的模板不能修改,后续修改模板建议新创建一个副本模板进行调试,确认无误后进行模板切换。
- 使用mqtt.fx工具模拟设备真实建链,在控制台查看设备处于在线状态,Broker Address填平台接入地址,选择“总览 > 接入信息”,端口使用8883端口。
图4 设备建链图5 设备列表-设备在线