产品定价 立即试用
社区版
文档 > 安全 > MQTT传输 > 基于访问令牌的认证
入门
指南 安装 架构 API 常见问题
目录

基于Access Token的MQTT认证

基于AccessToken的认证是默认的设备认证类型。设备在ThingsBoard中创建时会生成一个AccessToken,之后可以修改。客户端需要在MQTT CONNECT消息中使用AccessToken作为用户名(username字段)。

Plain MQTT(无TLS)

以下示例使用AccessToken向ThingsBoard Cloud上传温度读数。更多详情见MQTT API。该示例使用plainMQTT(不启用TLS):

1
2
mosquitto_pub -d -q 1 -h "YOUR_TB_HOST" -p "1883" \
-t "v1/devices/me/telemetry" -u "YOUR_ACCESS_TOKEN" -m '{"temperature":25}'

以上命令需要安装mosquitto-clients,在Debian/Ubuntu上可使用:apt-get install mosquitto-clients。请将YOUR_TB_HOST替换为ThingsBoard实例的主机地址和端口(例如127.0.0.1:8080),将YOUR_ACCESS_TOKEN替换为设备的AccessToken。

MQTTS(MQTT over SSL/TLS)

启用TLS/SSL时,客户端通过服务器证书验证服务器身份。

若自行托管ThingsBoard实例,请按MQTT over SSL指南配置服务器证书。

配置完成后,需准备PEM格式的CA根证书,供MQTT客户端验证服务器证书。将CA根证书保存到工作目录,命名为ca-root.pemlocalhost的CA根证书示例见此处

可使用ca-root.pem与ThingsBoard实例(YOUR_TB_HOST)建立安全连接,并使用AccessToken(YOUR_ACCESS_TOKEN)认证设备以上传遥测数据:

1
2
mosquitto_pub --cafile ca-root.pem -d -q 1 -h "YOUR_TB_HOST" -p "8883" \
-t "v1/devices/me/telemetry" -u "YOUR_ACCESS_TOKEN" -m '{"temperature":25}'

以上同样需安装mosquitto-clients