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

时间:2024-12-31 18:15:14

连接鉴权

参考连接鉴权接口文档,使用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”代表HMA CS HA256不校验时间戳。
      • “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