TBMQ提供一系列安全特性,用于保护MQTT通信、控制客户端访问并实施主题级权限。 这些特性覆盖MQTT安全的关键方面——从连接级设置到细粒度授权规则——并为多种部署场景提供灵活配置选项。
概览页介绍TBMQ中MQTT安全的三个核心领域:连接级安全、认证和授权。 以下各节说明这些组件的作用、配置方式及其在broker安全模型中的交互。
连接级安全
连接级安全侧重于配置客户端如何连接broker。 定义支持的传输协议、加密选项和网络级参数——在应用认证和授权之前建立安全通信通道所必需。 在TBMQ中,通过配置 MQTT listeners 实现,支持加密和非加密协议(TCP、TLS、WebSockets)。 每个listener暴露可配置属性——如端口、主机地址和性能调优选项——可通过配置文件设置或使用环境变量覆盖。 对于TLS和WebSocket Secure (WSS) 监听器,还可配置证书和支持的协议等加密参数。
认证
认证验证尝试连接的客户端的身份。即在授予broker访问权限之前验证客户端凭据的过程。 支持的认证方式包括:Basic(username/password)、X.509 Certificate Chain、JWT和SCRAM。
提供者管理
| 自 TBMQ 版本 2.2 起可用 |
认证方式以可插拔认证提供者实现:
- Basic — 使用
CONNECT包中的clientId、username和password认证客户端。 - X.509 Certificate Chain — 在TLS握手中使用客户端X.509证书链进行认证。
- JWT (JSON Web Token) — 使用在
CONNECT包password字段中传递的签名JWT认证客户端。 - SCRAM — 使用哈希凭据进行安全challenge-response认证,不传输实际密码(仅MQTT5.0)。
每个提供者可单独启用、禁用和配置,以满足不同部署用例的需求。
您可直接在TBMQ用户界面中查看认证提供者状态、启用或禁用它们,无需修改配置文件或重启broker即可轻松管理认证行为。
- 在首页的 Broker Settings 卡片中,可找到每个可用认证提供者的快捷切换按钮。 点击目标提供者旁的按钮即可启用或禁用。
- 在 Authentication Providers 页面,可进行更精细的控制和查看:
- 通过点击表格对应行的Switch按钮,可直接启用或禁用提供者。
- 如需更细致的管理,点击提供者打开详情页,可修改状态或其他参数。
提供者执行顺序
| 自 TBMQ 版本 2.2 起可用 |
TBMQ按可配置的执行顺序处理认证提供者。 可从用于配置MQTT认证相关参数的 MQTT Authentication Settings 页面配置。
当前阶段,本节仅有一个参数:Authentication Execution Order。 该参数定义broker使用认证提供者验证MQTT客户端认证的顺序。
关键规则:
- 已禁用的提供者将在认证流程中被跳过。
- 认证流程在第一次成功结果处停止,或在所有已启用提供者评估完成后停止。
- 若所有提供者均已禁用,客户端将在不进行MQTT客户端凭据验证的情况下完成认证。
授权
授权根据已认证客户端的权限,对特定资源或操作授予或拒绝访问。 为此,通过应用可配置规则定义主题级访问控制,规则决定客户端是否可发布到或订阅特定主题。TBMQ使用基于正则表达式的主题模式执行这些规则。 授权设置通常在 client credentials 级别配置。仅JWT认证支持在提供者级别定义授权规则,从而实现动态、token驱动的访问控制。
下一步
-
快速入门指南 - 本指南提供 TBMQ 的快速概览。
-
安装指南 - 学习如何使用 Docker 配置 TBMQ 或在 AWS、GCP、Azure 的 K8S 环境中部署。
-
配置指南 - 了解 TBMQ 配置文件和参数。
-
MQTT 客户端类型指南 - 了解 TBMQ 客户端类型。
-
与 ThingsBoard 集成 - 了解如何将 TBMQ 与 ThingsBoard 集成。