访问控制中设置自己的认证(http)后,授权里面的自己的http接口、pg库配置的权限设置能力就失效了



说明:
1.我们采用了自己的鉴权认证,用到的是自己的用户体系,就是我们用的用户在EMQX平台是没有的。
2.在这种情况下使用授权里面的能力,对客户端发布和订阅topic进行权限校验,但是这时会失效,这些都不会被触发,就像是EMQX判断用户不是自己的,所以丢弃了一样。
3.如果我们把鉴权认证关闭,并且使用系统的admin用户来测试,那授权里的配置就能正确生效了。
所以我想请教一下,授权的能力会受认证的影响吗?它们不是应该是互不干扰的吗?如果我们必须要有自己的认证方式的情况下,又如何去构建授权配置,来实现我们的需求呢。
谢谢!!!

  1. 请问你使用的版本是什么
  2. 认证和鉴权是独立的,但是如果认证时返回的认证数据里面, is_superuser 为 true,则该用户可以执行任何订阅和发布
  3. 认证和鉴权在 debug 模式下,都会打印详细信息,你可以根据日志先查找下原因

1.后台可执行程序的版本号是5.0.6,前台界面没有找到直接查看版本号的地方
2.admin用户是超级用户,他能够订阅和发布所有我能够理解。目前有问题的是其他我们自己的用户,没有在EMQX创建的这些用户,是这些用户希望走授权里的配置,而没有实现效果。
3.在服务启动的相关配置文件中没有找到配置debug模式的地方,方便指导下吗?当前启动的日志中没有找到相关日志,即我去尝试publish某个topic时,日志中没有相应日志出现。(log/emqx.log.6)
备注:我所说的授权失效,是不管配置的allow还是deny,均无效果,最终都消息都发布出来了。


然后就是你们认证 HTTP Server,返回的数据格式是怎样的

你好,我这边找到问题了,是因为认证报文返回的是否超级用户总是为true,而授权逻辑的优先级最高的就是先判断是否为超级用户,如果是则后续的授权配置均不起作用。
感谢解答!!!谢谢
结贴