针对不同客户端实现不同认证方式。内部外部客户端

环境信息

  • EMQX 版本:
  • 操作系统及版本:
  • 其他

问题描述

设置过针对不同用户进行账号密码认证加ssl认证,有的指认证账号密码

配置文件及日志

1 个赞

你的问题信息量太少,不太明白你遇到了什么问题,麻烦你更详细的描述下你遇到的问题和期望,以及正在使用的 EMQX 版本等

可以实现的哈。在 5.0 和 4.x 都行,不过 5.0 配置起来会比 4.x 简单一些。
例如,

  1. 配置中创建一个默认认证列表,来做通用认证(例如,通过用户名密码检查)
  2. 在需要特殊处理认证的客户端,可以新开一个端口(即,例如新增一个 3883 的监听器),再给这个监听器配置一个 JWT 认证(基于Token的认证方式)
  3. 在某个 SSL 监听器上,开启证书的双向认证,并设置 enable_authn=false 表示直接绕过所有的认证配置,这样话意味着只要客户端证书验证通过,即允许登录

细节可以参考文档:https://www.emqx.io/docs/zh/v5.0/security/authn/authn.html

如果还有疑问欢迎继续更新

listeners.ssl.default {
bind = “0.0.0.0:8883”
max_connections = 512000
enable_authn=false // 配置的位置是否正确?我增加后重启, 还是会校验
ssl_options {
verify = verify_peer
keyfile = “/etc/emqx/certs/emqx.key”
certfile = “/etc/emqx/certs/emqx.pem”
cacertfile = “/etc/emqx/certs/ca.pem”
}
}