设备接入 IoTDA-自定义模板示例:示例2

时间:2025-02-12 15:01:01

示例2

设备ID格式为:${ProductId}_${NodeId}。

表2 鉴权参数

参数

说明

Client ID

固定格式:

${ClientId}|securemode=2,signmethod=hmacsha256|timestamp=${timestamp}|
  • ${ClientId}: 固定格式 ${ProductId}.${NodeId}。
    • ${NodeId}: 设备标识码。
    • ${ProductId}:产品ID。
  • ${timestamp}:Unix时间戳,毫秒。

User Name

由设备标识码和产品ID组成,固定格式:

${NodeId}&${ProductId}

Password

以设备密码为密钥,将设备参数与参数值拼接后的字符串为加密串进行hmacsha256算法加密。

加密串格式:

clientId${clientId}deviceName${nodeId}productKey${productId}timestamp${timestamp}
  • ${ClientId}: 固定格式 ${ProductId}.${NodeId}。
  • ${NodeId}: 设备标识码。
  • ${ProductId}:产品ID。
  • ${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}"]}}}}
support.huaweicloud.com/usermanual-iothub/iot_01_0235.html