相关文章推荐
Skip to content
EMQX 文档

基于 MongoDB 进行授权

EMQX 支持通过集成 MongoDB 进行授权验证,即可以将客户端的权限列表存储在 MongoDB 数据库中。

前置准备

熟悉 EMQX 授权基本概念

数据结构与查询语句

MongoDB 认证器支持将权限数据存储为 MongoDB 文档。用户需要提供一个查询语句模板,且确保查询结果包含以下字段:

  • permission : 用于指定操作权限,可选值有 allow deny
  • action : 用于指定当前规则适用于哪些操作,可选值有 publish subscribe all
  • topics : 用于指定当前规则适用的主题列表,可以使用主题过滤器和 主题占位符
  • qos :(可选)用于指定当前规则适用的消息 QoS,可选值有 0 1 2 ,也可以使用数字数组同时指定多个 QoS。默认为所有 QoS。
  • retain : (可选)用于指定当前规则是否支持发布保留消息,可选值有 0 1 ,或 true false 。默认允许保留消息。

禁止用户名为 emqx_u 的客户端发布主题为 t/1 且 QoS 值为 1 的消息:

相应的配置参数如下:

TIP

当系统中有大量用户时,请确保查询使用的集合已优化并使用有效的索引,以提升大量发布订阅时的数据查找速度并降低 EMQX 负载。

配置项

此认证器支持 3 种部署模式的 MongoDB。

MongoDB Authorizer 必需有 type = mongodb

有三种不同的连接模式:

Standalone:

ReplicaSet

Sharded Cluster

 
推荐文章