第6章 Mosquitto用户认证与访问控制

第6章 用户认证与访问控制

6.1 认证机制概览

匿名
用户名密码
插件
客户端连接
认证检查
allow_anonymous
密码文件
动态认证
允许或拒绝
验证密码
成功/失败
外部验证

6.2 密码文件管理

创建密码文件

bash 复制代码
# 创建新密码文件(-c)
mosquitto_passwd -c /etc/mosquitto/passwd admin

# 添加用户
mosquitto_passwd -b /etc/mosquitto/passwd user1 pass123

# 删除用户
mosquitto_passwd -D /etc/mosquitto/passwd user1

# 修改密码
mosquitto_passwd -b /etc/mosquitto/passwd admin newpass

密码文件格式

bash 复制代码
# /etc/mosquitto/passwd
# 格式: username:$6$hash...
admin:$6$4o...
user1:$6$7k...
user2:$6$9m...

6.3 ACL访问控制

ACL文件结构

ACL规则
用户权限
user specific
topic readwrite
topic read
topic write
模式匹配
pattern readwrite
%u 用户名
%c ClientID
通配符

  • 单级 # 多级

ACL配置示例

bash 复制代码
# /etc/mosquitto/acl

# 管理员 - 所有权限
user admin
topic readwrite #

# 传感器设备
user sensor001
topic write sensor/sensor001/data
topic read sensor/sensor001/config
topic read cmd/sensor001/#

# 移动应用
user app_user123
topic read home/#
topic write home/cmd/#

# 只读监控
user monitor
topic read #

# 模式匹配
pattern readwrite home/%u/#
pattern readwrite device/%c/#

匹配优先级

ACL检查
用户特定规则
模式匹配规则
默认规则
最优先
其次
最后
应用第一个匹配

6.4 认证流程

ACL文件 密码文件 Broker 客户端 ACL文件 密码文件 Broker 客户端 CONNECT user/user1, pass/pass123 查询user1 密码匹配 认证成功 SUBSCRIBE sensor/ 检查ACL 允许订阅 SUBACK PUBLISH sensor/data 检查发布权限 允许发布 转发消息

6.5 完整配置

bash 复制代码
# /etc/mosquitto/mosquitto.conf

# 禁用匿名
allow_anonymous false

# 密码文件
password_file /etc/mosquitto/passwd

# ACL文件
acl_file /etc/mosquitto/acl

# 访问日志
log_dest stdout
log_type all
connection_messages true

6.6 本章小结

实现了基于用户名密码的认证和细粒度的主题访问控制。

相关推荐
XM_jhxx6 小时前
±0.03mm的精度怎么保证?翌东塑胶用AI赋能质量管控升级
人工智能
阿正的梦工坊6 小时前
深入理解 PyTorch 中的 unsqueeze 操作
人工智能·pytorch·python
秦歌6668 小时前
DeepAgents框架详解和文件后端
人工智能·langchain
测试员周周9 小时前
【Appium 系列】第06节-页面对象实现 — LoginPage 实战
开发语言·前端·人工智能·python·功能测试·appium·测试用例
霸道流氓气质9 小时前
基于 Milvus Lite 的 Spring AI RAG 向量库实践方案与示例
人工智能·spring·milvus
ar01239 小时前
AR巡检平台:构筑智能巡检新模式的数字化引擎
人工智能·ar
语音之家9 小时前
【预讲会征集】ACL 2026 论文预讲会
人工智能·论文·acl
碳基硅坊9 小时前
电商场景下的商品自动识别与辅助上架
人工智能
2401_873479409 小时前
运营活动被薅羊毛怎么防?用IP查询+设备指纹联动封堵漏洞
java·网络·tcp/ip·github
应用市场9 小时前
Android A/B 无缝更新机制深度剖析
android·网络