emqx 5.0 如何禁止匿名访问?

emqx 4.x 是通过修改 emqx\etc路径下emqx.conf配置文件,将“allow_anonymous = true”修改为false。
但是emqx 5.0的配置文件中,没有发现这个选项。

1 个赞

你好,5.0 中我们移除了匿名认证这个容易引起误解的配置项。

现在,如果你没有启用认证,那么所有客户端都可以接入;而如果你启用了认证,那么所有的客户端都需要认证通过才能接入。

如果你对不同客户端有不同的认证要求,比如一部分需要认证,一部分不需要,你可以新建一个监听器,并在这个监听器上关闭认证,然后让那些不需要认证的客户端连接到这个监听器上来。

1 个赞

监听器跟认证授权怎么关联,好像配置http认证的地方没有选择监听器

只能通过配置配置的

例如:

listeners.tcp.default {
   // 中括号里的格式,与外部的格式相同
  authentication = [...]
}

但不建议你这么配置,除非你每个端口有不同的认证需求。

mqtt后台18083端口可以界面配置吗

我们后台服务不需要认证

我这样配置,还是要授权,另外1883端口是走授权的
listeners.tcp.noauth {
bind = “0.0.0.0:1884”
zone = “default”
enabled = true
max_connections = 1024000
authentication = [
{
backend = “http”
enable = false
}
]
authorization {
sources = [
{
type = "http
enable = false
}
]
}
}

鉴权是指 authentication,用于控制客户端是否有权限登录到 EMQX 的,如果需要对某个监听器关闭登录鉴权,可以配置

listeners.tcp.noauth {
   enable_authn = false
}

授权是指 authorization, 他是无法全局的,无法基于某个监听器进行配置