Mosquitto: MQTT API认证如何工作
本文档属于API认证指南的一部分。您可以在此处查看完整指南:如何使用外部API认证数千台设备。
👋 欢迎来到 Stackhero 文档!
Stackhero 提供即用型 Mosquitto MQTT 云 解决方案,具有众多优势,包括:
- 无限制的消息交换和传输。
- 通过外部 API 进行无限制的设备认证。
- 针对主题、用户和操作的高级 ACL。
- 使用 HTTPS 保护的可定制域名(例如,https://mqtt.your-company.com)。
- 只需点击即可轻松更新。
- 由专用私有 VM提供的最佳性能和强大安全性。
节省时间并简化您的生活:只需 5 分钟即可试用 Stackhero 的 Mosquitto MQTT 云托管 解决方案!
当您有超过20台物联网设备或需要详细的主题ACL管理时,使用外部API认证特别有用。
当设备连接到MQTT时,Mosquitto会向您的API发送一个HTTP POST请求。请求包含一个JSON负载,其中包括设备的用户名和密码。如果您的API返回HTTP状态码200,则设备被授权。任何不是200的状态码(如401)都会导致设备被拒绝访问。
在ACL验证期间,会传输四个参数:username、clientid、topic和acc。您的API应验证username是否被允许在topic上执行由acc定义的操作。acc参数定义如下:
- 读取访问 (1)
- 写入访问 (2)
- 读写访问 (3)
- 订阅访问 (4)
例如,如果用户userA尝试订阅主题sensors/temperatures,您的API将收到以下JSON:
{
"username": "userA",
"clientid": "userA",
"topic": "sensors/temperatures",
"acc": 4
}
当您通过API使用用户认证时,您仍然可以在Stackhero仪表板中手动定义用户。 在这种情况下,手动定义的用户将被优先考虑。