第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 本章小结

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

相关推荐
云道轩14 小时前
腾讯云上有性能比较强的英伟达GPU
人工智能·云计算·腾讯云·英伟达gpu
常宇杏起在14 小时前
AI安全专项:AI密码技术的应用与安全防护
人工智能·安全
不惑_14 小时前
腾讯云WorkBuddy实战, 全场景智能体工作搭子,这只龙虾真能帮你干活吗
人工智能·云计算·腾讯云·openclaw
wanmeijuhao14 小时前
腾讯云 AI 代码助手编程挑战赛 + 构建开发板垃圾图片识别AI对话的Copilot
人工智能·腾讯云·copilot·腾讯云ai代码助手
X54先生(人文科技)14 小时前
《元创力》纪实录·卷宗2.1P上去的安全带:当“表演性合规”成为文明的遮羞布
人工智能·架构·开源·ai写作·开源协议
Herlie14 小时前
01Agent和传统选题工具区别:账号定位适配怎么选
人工智能
user_admin_god14 小时前
Claude Code 安装与配置指南:兼容国产模型,禁止自动更新
java·人工智能
HyperAI超神经14 小时前
MiniCPM5-1B采用RL+OPD训练,多项复杂任务达SOTA;面向复杂医疗业务自动化:医疗智能体评测数据集 CHI-Bench
人工智能·深度学习·ai·计算化学
一个王同学14 小时前
从零到一 | CV转多模态大模型 | week12 | 整理 MiniLLaVA 工程与文档
人工智能·深度学习·算法·机器学习·计算机视觉
数智化管理手记14 小时前
标准作业越推越虚?重塑认知、规避误区,破解精益落地形式主义
大数据·网络·精益工程