设备接入 IOTDA-基于MQTT.fx的X.509证书接入:连接鉴权
连接鉴权
参考连接鉴权接口文档,使用MQTT.fx工具激活在 物联网平台 上注册的设备。
- 下载MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载MQTT.fx),安装MQTT.fx工具。
- 安装最新版MQTT.fx工具,可单击此处下载。
- MQTT.fx 1.7.0及旧版本对带有$的主题(Topic)处理存在问题,请使用最新版本进行测试。
- 访问这里,填写注册设备后生成的设备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链路。
- 打开MQTT.fx软件,单击“设置”图标。
图16 设置
- 填写“ Connection Profile” 相关信息。
图17 “General ”可以使用工具默认信息
- 单击“User Credentials”填写“User Name”。
图18 填写设备ID
参数名称
说明
User Name
即设备ID,请参考2中获取。
Password
使用X.509证书认证时不需要填写。
- 单击“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)。
- 单击“Connect”,设备鉴权成功后,在物联网平台可以看到设备处于在线状态。
图20 设备列表-设备在线