- emqx-auth-mongo
- auth.mongo.rs_set_name
- auth.mongo.rs_set_name
- auth.mongo.pool
- auth.mongo.login
- auth.mongo.password
- auth.mongo.auth_source
- auth.mongo.database
- auth.mongo.query_timeout
- auth.mongo.ssl
- auth.mongo.ssl_opts.keyfile
- auth.mongo.ssl_opts.certfile
- auth.mongo.ssl_opts.cacertfile
- auth.mongo.w_mode
- auth.mongo.r_mode
- auth.mongo.auth_query.collection
- auth.mongo.auth_query.password_field
- auth.mongo.auth_query.password_hash
- auth.mongo.auth_query.selector
- auth.mongo.auth_query.super_query
- auth.mongo.super_query.collection
- auth.mongo.super_query.selector
- auth.mongo.acl_query
- auth.mongo.acl_query.collection
- auth.mongo.acl_query.selector
- auth.mongo.topology.pool_size
- auth.mongo.topology.max_overflow
- auth.mongo.topology.overflow_ttl
- auth.mongo.topology.overflow_check_period
- auth.mongo.topology.local_threshold_ms
- auth.mongo.topology.connect_timeout_ms
- auth.mongo.topology.socket_timeout_ms
- auth.mongo.topology.server_selection_timeout_ms
- auth.mongo.topology.wait_queue_timeout_ms
- auth.mongo.topology.heartbeat_frequency_ms
- auth.mongo.topology.min_heartbeat_frequency_ms
emqx-auth-mongo
auth.mongo.type
Type | Optional Value | Default |
---|---|---|
enum | single , unknown , sharded , rs | single |
说明
设置 MongoDB 的拓扑类型:
single: 单节点
unknown: 未知
sharded: 分片模式
rs: 副本模式 (replicated set)
auth.mongo.rs_set_name
Type | Default |
---|---|
string | - |
说明
在使用 rs 模式的情况下,设置 rs 的名字。
auth.mongo.rs_set_name
Type | Default |
---|---|
string | 127.0.0.1:27017 |
说明
设置 MongoDB 服务的地址。如有多个使用逗号 ,
分隔。
auth.mongo.pool
Type | Default |
---|---|
integer | 8 |
说明
设置 MongoDB 连接池的进程数。
auth.mongo.login
Type | Default |
---|---|
string | - |
说明
设置 MongoDB 的用户名。
auth.mongo.password
Type | Default |
---|---|
string | - |
说明
设置 MongoDB 的密码。
auth.mongo.auth_source
Type | Default |
---|---|
string | mqtt |
说明
设置 MongoDB 的认证源数据库名。
auth.mongo.database
Type | Default |
---|---|
string | mqtt |
说明
设置 MongoDB 的数据库名。
auth.mongo.query_timeout
Type | Default |
---|---|
duration | 5s |
说明
设置访问 MongoDB 超时时间。
auth.mongo.ssl
Type | Optional Value | Default |
---|---|---|
enum | true , false | false |
说明
设置是否使用 SSL 访问 MongoDB。
auth.mongo.ssl_opts.keyfile
Type | Default |
---|---|
string | - |
说明
若使用 SSL 访问 MongoDB,设置 SSL 客户端的私钥文件。
auth.mongo.ssl_opts.certfile
Type | Default |
---|---|
string | - |
说明
若使用 SSL 访问 MongoDB,设置 SSL 客户端的证书文件。
auth.mongo.ssl_opts.cacertfile
Type | Default |
---|---|
string | - |
说明
若使用 SSL 访问 MongoDB,设置 SSL 的 CA 证书文件。
auth.mongo.w_mode
Type | Optional Value | Default |
---|---|---|
enum | unsafe , safe , undef | undef |
说明
设置 MongoDB 的写入模式。
auth.mongo.r_mode
Type | Optional Value | Default |
---|---|---|
enum | master , slave_ok , undef | undef |
说明
设置 MongoDB 的读取模式。
auth.mongo.auth_query.collection
Type | Default |
---|---|
string | mqtt_user |
说明
认证过程用的 Collection 名字。
auth.mongo.auth_query.password_field
Type | Default |
---|---|
string | password |
说明
认证过程用的主要字段。如需在密码之后加 salt,可以配置为:
auth.mongo.auth_query.password_field = password,salt
auth.mongo.auth_query.password_hash
Type | Optional Value | Default |
---|---|---|
enum | plain , md5 , sha , sha256 , bcrypt | sha256 |
说明
设置密码字段用的哈希算法。如需在 sha256 密码之后加 salt,可以设置为:
auth.mongo.auth_query.password_hash = sha256,salt
如需在 sha256 密码之前加 salt,可以设置为:
auth.mongo.auth_query.password_hash = salt,sha256
如需在 bcrypt 密码之前加 salt,可以设置为:
auth.mongo.auth_query.password_hash = salt,bcrypt
auth.mongo.auth_query.selector
Type | Default |
---|---|
string | username=%u |
说明
认证过程执行的 MongoDB 语句。命令可支持通配符:
- %u: username
- %c: clientid
- %C: 客户端 TLS 证书里的 Common Name
- %d: 客户端 TLS 证书里的 Subject
auth.mongo.auth_query.super_query
Type | Optional Value | Default |
---|---|---|
enum | on , off | on |
说明
认证中是否使用 SuperUser。
auth.mongo.super_query.collection
Type | Default |
---|---|
string | mqtt_user |
说明
若使用 SuperUser,指定 SuperUser 的 MongoDB Collection。
auth.mongo.super_query.selector
Type | Default |
---|---|
string | username=%u, clientid=%c |
说明
若使用 SuperUser,指定查询 SuperUser 使用的 MongoDB 语句。
auth.mongo.acl_query
Type | Optional Value | Default |
---|---|---|
enum | on , off | on |
说明
是否开启 ACL 功能。
auth.mongo.acl_query.collection
Type | Default |
---|---|
string | mqtt_acl |
说明
若使用 ACL 功能,指定查询 ACL 规则的 MongoDB Collection。
auth.mongo.acl_query.selector
Type | Default |
---|---|
string | username=%u |
说明
若使用 ACL 功能,指定查询 ACL 规则使用的 MongoDB 语句。可支持多个 ACL 语句,多个语句之间使用 or 连接。
例如,配置如下两条访问规则:
auth.mongo.acl_query.selector.1 = username=%u
auth.mongo.acl_query.selector.2 = username=$all
并且客户端的 username=’ilyas’,则在查询 acl 规则的时候,会执行如下 MongoDB 语句:
db.mqtt_acl.find({$or: [{username: "ilyas"}, {username: "$all"}]});
auth.mongo.topology.pool_size
Type | Default |
---|---|
integer | 1 |
说明
MongoDB 拓扑参数,设置线程池大小。
auth.mongo.topology.max_overflow
Type | Default |
---|---|
integer | 0 |
说明
MongoDB 拓扑参数,当线程池中所有 workers 都处于忙碌状态时,允许创建多少额外的 worker 线程。
auth.mongo.topology.overflow_ttl
Type | Default |
---|---|
integer | 1000 |
说明
MongoDB 拓扑参数,当有 worker 空闲时。多久之后释放额外的 worker 线程。单位: 毫秒。
auth.mongo.topology.overflow_check_period
Type | Default |
---|---|
integer | 1000 |
说明
MongoDB 拓扑参数,多长时间检查一次有无空闲线程,以释放额外的 worker。
auth.mongo.topology.local_threshold_ms
Type | Default |
---|---|
integer | 1000 |
说明
MongoDB 拓扑参数,选择用来处理用户请求的 Secondary 节点的策略。记到所有节点的 RTT 中的最小值为 LowestRTT,那么只有那些 RTT < LowestRTT + local_threshold_ms 的 Secondary 节点会被选择。
auth.mongo.topology.connect_timeout_ms
Type | Default |
---|---|
integer | 20000 |
说明
MongoDB 拓扑参数,MongoDB 连接超时时间,单位: 毫秒。
auth.mongo.topology.socket_timeout_ms
Type | Default |
---|---|
integer | 100 |
说明
MongoDB 拓扑参数,MongoDB 消息发送超时时间,单位: 毫秒。
auth.mongo.topology.server_selection_timeout_ms
Type | Default |
---|---|
integer | 30000 |
说明
MongoDB 拓扑参数,选择 MongoDB Server 的超时时间,单位: 毫秒。
auth.mongo.topology.wait_queue_timeout_ms
Type | Default |
---|---|
integer | 1000 |
说明
MongoDB 拓扑参数,从线程池中选取 worker 的等待超时时间,单位: 毫秒。
auth.mongo.topology.heartbeat_frequency_ms
Type | Default |
---|---|
integer | 10000 |
说明
MongoDB 拓扑参数,拓扑扫描之间的间隔时间,单位: 毫秒。
auth.mongo.topology.min_heartbeat_frequency_ms
Type | Default |
---|---|
integer | 1000 |
说明
MongoDB 拓扑参数,heartbeat_frequency_ms
允许的最小值,单位: 毫秒。