设备接入 IOTDA-基于MQTT.fx的X.509证书接入:连接鉴权

时间:2024-05-27 14:12:50

连接鉴权

参考连接鉴权接口文档,使用MQTT.fx工具激活在物联网平台上注册的设备。

  1. 下载MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载MQTT.fx),安装MQTT.fx工具。

    • 安装最新版MQTT.fx工具,可单击此处下载
    • MQTT.fx 1.7.0及旧版本对带有$的主题(Topic)处理存在问题,请使用最新版本进行测试。

  2. 访问这里,填写注册设备后生成的设备ID(DeviceId)和密钥(DeviceSecret),生成连接信息(ClientId、Username、Password)。

    DeviceSecret在此场景下可随意填写,如12345678。

    图15 获取ClientId

    参数

    必选/可选

    类型

    参数描述

    ClientId

    必选

    String(256)

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

    • 设备ID:指设备在平台成功注册后生成的唯一设备标识,通常由设备的产品ID和设备的NodeId通过分隔符“_”拼装而来。
    • 设备身份标识类型:固定值为0,表示设备ID。
    • 密码签名类型:长度1字节,当前支持2种类型:
      • “0”代表HMACSHA256不校验时间戳。
      • “1”代表HMACSHA256校验时间戳。
    • 时间戳:为设备连接平台时的UTC时间,格式为YYYYMMDDHH,如UTC 时间2018/7/24 17:56:20 则应表示为2018072417。

    Username

    必选

    String(256)

    设备ID。

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

    使用生成工具生成的clientId格式,默认不校验时间戳:设备ID_0_0_时间戳。

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

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

  3. 打开MQTT.fx软件,单击“设置”图标。

    图16 设置

  4. 填写“ Connection Profile” 相关信息。

    图17 “General ”可以使用工具默认信息

    参数名称

    说明

    Broker Address

    填写从设备接入服务控制台获取的设备对接地址,此地址为域名信息。不能通过域名接入的设备,填写IP地址,详细请参考2中获取的。

    Broker Port

    为8883。

    Cliend ID

    设备cliendID,请参考2中获取。

  5. 单击“User Credentials”填写“User Name”

    图18 填写设备ID

    参数名称

    说明

    User Name

    即设备ID,请参考2中获取。

    Password

    使用X.509证书认证时不需要填写。

  6. 单击“SSL/TLS”配置鉴权参数,然后单击““Apply””。选择开启 “SSL/TLS”,勾选“ Self signed certificates”,配置相关证书内容。

    图19 填写“SSL/TLS”相关参数

    CA File为对应的CA证书。下载并获取证书(加载pem格式的证书),获取证书请根据需要在资源获取里下载。

    Client Certificate File为设备的设备证书(deviceCert.pem)。

    Client Key File为设备的私钥(deviceCert.key)。

  7. 单击“Connect”,设备鉴权成功后,在物联网平台可以看到设备处于在线状态。

    图20 设备状态

support.huaweicloud.com/bestpractice-iothub/iot_bp_0077.html