设备发放 IOTDP-MQTT CONNECT连接鉴权:参数说明

时间:2024-07-01 17:24:57

参数说明

表1 设备发放参数说明列表

参数

必选/可选

类型

参数描述

clientId

必选

String(256)

注册组选择非华为云证书场景:

设备clientId由3个部分组成:设备ID、设备身份标识类型、用户标识ID(ScopeID)。通过下划线“_”分隔,设备身份标识类型固定值为0

例:5f052ac562369102d42b0fb6_0_ff5bbx7a488f

其他场景:

设备clientId由4个部分组成:设备ID、设备身份标识类型、密码签名类型、时间戳。通过下划线“_”分隔,设备身份标识类型固定值为0

  • 密码签名类型:长度1字节,当前支持2种类型:
    • “0”代表HMA CS HA256不校验时间戳。
    • “1”代表HMACSHA256校验时间戳。
  • 时间戳:为设备连接平台时的UTC时间,格式为YYYYMMDDHH,如UTC 时间2018/7/24 17:56:20 则应表示为2018072417。

例:5f052ac562369102d42b0fb6_0_0_2019122614

Username

必选

String(256)

设备ID。

Password

必选

String(256)

Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值(secret为注册设备时平台返回的secret)。

当设备认证类型使用密钥认证接入(SECRET)需填写“Password”,证书认证接入(CERTIFICATES)不需填写“Password”。

ScopeID可以在设备发放页面点击注册组查询,如下图所示。

设备通过MQTT协议的connect消息进行鉴权,对于构造clientId的各个部分信息都必须包括进去,平台收到connect消息时,会判断设备的鉴权类型和密码摘要算法。

  • 当采用“HMACSHA256”校验时间戳方式时,会先校验消息时间戳与平台时间是否一致,再判断密码是否正确。
  • 当采用“HMACSHA256”不校验时间戳方式时,鉴权消息也必须带时间戳,但不检验时间是否准确,仅判断密码是否正确。

connect消息鉴权失败时,平台会返回错误,并自动断开MQTT链路。

访问参数生成工具,填写注册设备后生成的设备ID(DeviceId)和密钥(DeviceSecret),生成设备连接鉴权所需的参数(ClientId、Username、Password)。

support.huaweicloud.com/qs-iotps/iot_03_0003.html