客户端认证
FlowMQ 提供统一的客户端认证能力,所有协议(MQTT、Kafka、AMQP、NATS)共享同一套账号与凭据体系。
认证默认开启,初始状态下所有认证器处于禁用状态,此时客户端可匿名访问,确保开箱即用。管理员可随时通过 API 启用认证器、创建用户,按需收紧安全策略。
认证器
认证器是执行凭据校验的组件。FlowMQ 支持以下认证器类型:
| 类型 | 说明 | 状态 |
|---|---|---|
| 内置认证(builtin) | 用户名/密码认证,凭据存储于 FlowMQ 内部 | 可用 |
| Webhook | 将认证请求转发至外部 HTTP 服务,由业务系统决定是否放行 | 规划中 |
| X.509 证书 | 基于客户端 TLS 证书(mTLS)进行身份识别 | 规划中 |
| OIDC | 对接 OpenID Connect / OAuth2,验证 JWT 令牌 | 规划中 |
| LDAP | 对接 LDAP / Active Directory | 规划中 |
每个认证器可独立启用、禁用。内置认证器(builtin)不可删除,但可以禁用。
内置认证器
内置认证器是 FlowMQ 自带的用户名/密码认证方式,凭据存储在 FlowMQ 内部。它作为单例始终存在于认证链中,不可删除,但可以启用或禁用。
各协议使用内置认证器的方式:
| 协议 | 认证方式 |
|---|---|
| MQTT | CONNECT 报文中的 username / password |
| Kafka | SASL/PLAIN |
| AMQP | SASL PLAIN |
| NATS | CONNECT 命令中的认证信息 |
认证链
多个认证器可组成链式结构,按顺序依次评估。FlowMQ 提供两种链模式:
| 模式 | 跳过(不支持该凭据类型) | 失败(凭据校验不通过) | 成功 |
|---|---|---|---|
| first-success(默认) | 继续下一个 | 终止,认证失败 | 终止,认证成功 |
| try-all | 继续下一个 | 继续下一个 | 终止,认证成功 |
管理员可通过 API 调整认证器的顺序和链模式,灵活适配不同场景。
匿名访问
当认证已开启但没有任何认证器处于启用状态时,FlowMQ 默认允许匿名访问,客户端无需提供凭据即可连接。这保证了开启认证不会中断尚未配置认证器的集群。
如需严格要求所有连接必须认证,可将 --knob-allow-anonymous-auth 设为 false。
Dashboard 操作
FlowMQ Dashboard 提供可视化的认证管理界面,支持认证器管理、认证链配置和用户管理。
认证器概览
进入 Authentication 页面,可查看所有认证器的统计信息与列表。页面顶部显示认证器总数、已启用数量和认证器类型数量。

启用 / 禁用认证器
点击认证器列表中的认证器名称进入详情页,点击右上角的 启用 / 禁用 按钮切换认证器状态。详情页同时显示该认证器在链中的位置和管理的用户数量。

认证链配置
在 Authentication 页面切换到 认证链 标签页,可查看和调整认证器的评估顺序,以及切换链模式(first-success / try-all)。通过拖拽可调整认证器顺序。

用户管理
点击内置认证器(builtin)进入详情页,下方展示用户管理界面。支持创建、编辑密码和删除用户。
点击 添加用户 按钮,在弹窗中输入用户名和密码即可创建新用户。
