emqx-auth-mongoemqx-auth-mongo (opens new window) - 图1 (opens new window)

auth.mongo.type

TypeOptional ValueDefault
enumsingle, unknown, sharded, rssingle
说明

设置 MongoDB 的拓扑类型:

  • single: 单节点

  • unknown: 未知

  • sharded: 分片模式

  • rs: 副本模式 (replicated set)

auth.mongo.rs_set_name

TypeDefault
string-
说明

在使用 rs 模式的情况下,设置 rs 的名字。

auth.mongo.rs_set_name

TypeDefault
string127.0.0.1:27017
说明

设置 MongoDB 服务的地址。如有多个使用逗号 , 分隔。

auth.mongo.pool

TypeDefault
integer8
说明

设置 MongoDB 连接池的进程数。

auth.mongo.login

TypeDefault
string-
说明

设置 MongoDB 的用户名。

auth.mongo.password

TypeDefault
string-
说明

设置 MongoDB 的密码。

auth.mongo.auth_source

TypeDefault
stringmqtt
说明

设置 MongoDB 的认证源数据库名。

auth.mongo.database

TypeDefault
stringmqtt
说明

设置 MongoDB 的数据库名。

auth.mongo.query_timeout

TypeDefault
duration5s
说明

设置访问 MongoDB 超时时间。

auth.mongo.ssl

TypeOptional ValueDefault
enumtrue, falsefalse
说明

设置是否使用 SSL 访问 MongoDB。

auth.mongo.ssl_opts.keyfile

TypeDefault
string-
说明

若使用 SSL 访问 MongoDB,设置 SSL 客户端的私钥文件。

auth.mongo.ssl_opts.certfile

TypeDefault
string-
说明

若使用 SSL 访问 MongoDB,设置 SSL 客户端的证书文件。

auth.mongo.ssl_opts.cacertfile

TypeDefault
string-
说明

若使用 SSL 访问 MongoDB,设置 SSL 的 CA 证书文件。

auth.mongo.w_mode

TypeOptional ValueDefault
enumunsafe, safe, undefundef
说明

设置 MongoDB 的写入模式。

auth.mongo.r_mode

TypeOptional ValueDefault
enummaster, slave_ok, undefundef
说明

设置 MongoDB 的读取模式。

auth.mongo.auth_query.collection

TypeDefault
stringmqtt_user
说明

认证过程用的 Collection 名字。

auth.mongo.auth_query.password_field

TypeDefault
stringpassword
说明

认证过程用的主要字段。如需在密码之后加 salt,可以配置为:

  1. auth.mongo.auth_query.password_field = password,salt

auth.mongo.auth_query.password_hash

TypeOptional ValueDefault
enumplain, md5, sha, sha256, bcryptsha256
说明

设置密码字段用的哈希算法。如需在 sha256 密码之后加 salt,可以设置为:

  1. auth.mongo.auth_query.password_hash = sha256,salt

如需在 sha256 密码之前加 salt,可以设置为:

  1. auth.mongo.auth_query.password_hash = salt,sha256

如需在 bcrypt 密码之前加 salt,可以设置为:

  1. auth.mongo.auth_query.password_hash = salt,bcrypt

auth.mongo.auth_query.selector

TypeDefault
stringusername=%u
说明

认证过程执行的 MongoDB 语句。命令可支持通配符:

  • %u: username
  • %c: clientid
  • %C: 客户端 TLS 证书里的 Common Name
  • %d: 客户端 TLS 证书里的 Subject

auth.mongo.auth_query.super_query

TypeOptional ValueDefault
enumon, offon
说明

认证中是否使用 SuperUser。

auth.mongo.super_query.collection

TypeDefault
stringmqtt_user
说明

若使用 SuperUser,指定 SuperUser 的 MongoDB Collection。

auth.mongo.super_query.selector

TypeDefault
stringusername=%u, clientid=%c
说明

若使用 SuperUser,指定查询 SuperUser 使用的 MongoDB 语句。

auth.mongo.acl_query

TypeOptional ValueDefault
enumon, offon
说明

是否开启 ACL 功能。

auth.mongo.acl_query.collection

TypeDefault
stringmqtt_acl
说明

若使用 ACL 功能,指定查询 ACL 规则的 MongoDB Collection。

auth.mongo.acl_query.selector

TypeDefault
stringusername=%u
说明

若使用 ACL 功能,指定查询 ACL 规则使用的 MongoDB 语句。可支持多个 ACL 语句,多个语句之间使用 or 连接。

例如,配置如下两条访问规则:

  1. auth.mongo.acl_query.selector.1 = username=%u
  2. auth.mongo.acl_query.selector.2 = username=$all

并且客户端的 username=’ilyas’,则在查询 acl 规则的时候,会执行如下 MongoDB 语句:

  1. db.mqtt_acl.find({$or: [{username: "ilyas"}, {username: "$all"}]});

auth.mongo.topology.pool_size

TypeDefault
integer1
说明

MongoDB 拓扑参数,设置线程池大小。

auth.mongo.topology.max_overflow

TypeDefault
integer0
说明

MongoDB 拓扑参数,当线程池中所有 workers 都处于忙碌状态时,允许创建多少额外的 worker 线程。

auth.mongo.topology.overflow_ttl

TypeDefault
integer1000
说明

MongoDB 拓扑参数,当有 worker 空闲时。多久之后释放额外的 worker 线程。单位: 毫秒。

auth.mongo.topology.overflow_check_period

TypeDefault
integer1000
说明

MongoDB 拓扑参数,多长时间检查一次有无空闲线程,以释放额外的 worker。

auth.mongo.topology.local_threshold_ms

TypeDefault
integer1000
说明

MongoDB 拓扑参数,选择用来处理用户请求的 Secondary 节点的策略。记到所有节点的 RTT 中的最小值为 LowestRTT,那么只有那些 RTT < LowestRTT + local_threshold_ms 的 Secondary 节点会被选择。

auth.mongo.topology.connect_timeout_ms

TypeDefault
integer20000
说明

MongoDB 拓扑参数,MongoDB 连接超时时间,单位: 毫秒。

auth.mongo.topology.socket_timeout_ms

TypeDefault
integer100
说明

MongoDB 拓扑参数,MongoDB 消息发送超时时间,单位: 毫秒。

auth.mongo.topology.server_selection_timeout_ms

TypeDefault
integer30000
说明

MongoDB 拓扑参数,选择 MongoDB Server 的超时时间,单位: 毫秒。

auth.mongo.topology.wait_queue_timeout_ms

TypeDefault
integer1000
说明

MongoDB 拓扑参数,从线程池中选取 worker 的等待超时时间,单位: 毫秒。

auth.mongo.topology.heartbeat_frequency_ms

TypeDefault
integer10000
说明

MongoDB 拓扑参数,拓扑扫描之间的间隔时间,单位: 毫秒。

auth.mongo.topology.min_heartbeat_frequency_ms

TypeDefault
integer1000
说明

MongoDB 拓扑参数,heartbeat_frequency_ms 允许的最小值,单位: 毫秒。