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

环境信息

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

问题描述

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

配置文件及日志

2 个赞

你的问题信息量太少,不太明白你遇到了什么问题,麻烦你更详细的描述下你遇到的问题和期望,以及正在使用的 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”
}
}

@584866489 我在实际使用用遇到和您同样的问题,按照文档说明应该是支持的使用ssl的时候可以不使用认证器认证,按照说明也增加了enable_authn=false的配置,也是没有达到效果。请问你们最后解决了吗?可以交流一下

试试开一个全新的 EMQX 然后在 etc/emqx.conf 下配置看看是否有效呢?

( 或者把原来安装的 data 目录删除下)

是的,昨天就是重新安装的,配置完后并没有达到想要的效果。不知道是哪里没有配置对还是别的,可以远程指导一下吗?

可以的,看你时间方便,会议链接和时间 可以发我邮箱 heeejianbo@gmail.com

在SSL的default配置里再增加以下认证,即可解决问题:
authentication = {
mechanism = password_based
backend = built_in_database
enable = false
}

clientID和用户名和密码不能同时认证吗

不能。