客户端认证
FlowMQ 提供统一的客户端认证能力,所有协议(MQTT、Kafka、AMQP、NATS)共享同一套账号与凭据体系。
认证默认开启,初始状态下没有为任何协议配置认证器,此时客户端可匿名访问,确保开箱即用。管理员可随时创建认证器、将其绑定到对应协议,按需收紧安全策略。
认证器
认证器是执行凭据校验的组件。FlowMQ 支持以下认证器类型:
| 类型 | 说明 | 状态 |
|---|---|---|
| 密码认证(password) | 用户名/密码认证,凭据存储于 FlowMQ 内部 | 可用 |
| Webhook | 将认证请求转发至外部 HTTP 服务,由业务系统决定是否放行 | 可用 |
| X.509 证书 | 基于客户端 TLS 证书(mTLS)进行身份识别 | 规划中 |
| OIDC | 对接 OpenID Connect / OAuth2,验证 JWT 令牌 | 规划中 |
| LDAP | 对接 LDAP / Active Directory | 规划中 |
管理员可以创建任意数量的认证器实例,并分别为每个协议指定使用哪一个。
各协议的凭据承载方式:
| 协议 | 认证方式 |
|---|---|
| MQTT | CONNECT 报文中的 username / password |
| Kafka | SASL/PLAIN |
| AMQP | SASL PLAIN |
| NATS | CONNECT 命令中的认证信息 |
协议与认证器的绑定
每个协议最多绑定一个认证器。当某个协议绑定了认证器时,该协议的所有连接都必须通过对应的凭据校验;未绑定认证器的协议则允许匿名访问。
这种模型让管理员可以按协议独立配置认证策略。例如,对外的 MQTT 接入使用 Webhook 对接业务系统,内部的 Kafka 接入使用内置的用户名/密码认证,而 NATS 保持匿名开放。
匿名访问
如果某个协议没有绑定认证器,客户端无需提供凭据即可连接,FlowMQ 会以匿名身份接受该连接。这保证了未配置认证器的协议不会被意外中断。
如需强制所有连接必须认证,请为每个对外开放的协议都绑定一个认证器。
Dashboard 操作
在 Dashboard 的 Authentication 页面可以:
- 创建、编辑和删除认证器实例
- 为每个协议绑定或解绑认证器
- 对密码认证器执行用户管理(创建用户、修改密码、删除用户)
