
# MQTT CONNECT连接鉴权
#### 接口功能
设备发放平台设备侧支持MQTT协议的connect消息接口，接口规范参考[MQTT标准规范](https://support.huaweicloud.com/qs-iotps/iot_03_0001.html#ZH-CN_TOPIC_0000001147693372__zh-cn_topic_0262066166_section20892951312)，鉴权通过后建立设备与平台间的MQTT连接。
![](https://support.huaweicloud.com/qs-iotps/public_sys-resources/note_3.0-zh-cn.png)
设备发放平台目前只支持MQTTS接入，设备通过connect消息接口和平台建立MQTT连接时，需要使用服务端CA证书验证服务端证书。服务端CA证书单击[huaweicloud-iot-root-ca-list](https://iodps-file.obs.cn-north-4.myhuaweicloud.com/rootca/composed/huaweicloud-iot-root-ca-list.zip)获取证书文件压缩包。 根据您使用的工具或语言取用压缩包内的证书文件：
- IoT Device SDK（C/C#）、MQTT.fx工具：使用压缩包中c目录下以pem或crt为后缀的文件；
- IoT Device SDK（Java）：使用压缩包中java目录下以jks为后缀的文件；
- IoT Device SDK（Android）：使用压缩包中android目录下以bks为后缀的文件。
 
#### 参数说明
表1设备发放参数说明列表 
|    参数    | 必选/可选 |     类型      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|---|---|---|---|
| clientId | 必选    | String(256) | 注册组选择非华为云证书场景： 设备clientId由3个部分组成：设备ID、设备身份标识类型、用户标识ID（ScopeID）。通过下划线"_"分隔，设备身份标识类型固定值为0 例：5f052ac562369102d42b0fb6_0_ff5bbx7a488f 其他场景： 设备clientId由4个部分组成：设备ID、设备身份标识类型、密码签名类型、时间戳。通过下划线"_"分隔，设备身份标识类型固定值为0 - 密码签名类型：长度1字节，当前支持2种类型： - "0"代表HMACSHA256不校验时间戳。  - "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可以在设备发放页面单击注册组查询，如下图所示。
图1查看ScopeId   
![](https://support.huaweicloud.com/qs-iotps/figure/zh-cn_image_0000001789322398.png "点击放大")
设备通过MQTT协议的connect消息进行鉴权，对于构造clientId的各个部分信息都必须包括进去，平台收到connect消息时，会判断设备的鉴权类型和密码摘要算法。
- 当采用"HMACSHA256"校验时间戳方式时，会先校验消息时间戳与平台时间是否一致，再判断密码是否正确。
- 当采用"HMACSHA256"不校验时间戳方式时，鉴权消息也必须带时间戳，但不检验时间是否准确，仅判断密码是否正确。
connect消息鉴权失败时，平台会返回错误，并自动断开MQTT链路。
![](https://support.huaweicloud.com/qs-iotps/public_sys-resources/note_3.0-zh-cn.png)
访问[参数生成工具](https://iodps-file.obs.cn-north-4.myhuaweicloud.com/tools/iotprovisioning.html)，填写注册设备后生成的设备ID（DeviceId）和密钥（DeviceSecret），生成设备连接鉴权所需的参数（ClientId、Username、Password）。
