# 外部认证与访问控制

外部认证与访问控制帮助用户使用自己服务进行认证鉴权,目前支持使用 MySQL, PostgreSQL 作为数据源,也支持连接到 HTTP 服务做认证鉴权。

# 外部认证与访问控制的原理和规则

在完成了服务的配置的之后,当客户端需要进行认证时, EMQX Cloud 将使用当前客户端的信息填充到设置的查询语句当中,并且执行用户配置的认证。 通过返回来判断是否通过验证。

若同时启用了内置认证,EMQX Cloud 将按照默认认证 (opens new window)、自定义认证的顺序进行链式认证:

  • 一旦认证成功,终止认证链并允许客户端接入
  • 一旦认证失败,终止认证链并禁止客户端接入

当多种认证方式同时启用时,系统会默认按照 模块的启用顺序 来执行查询。例如先开启了 MySQL 认证,后开启了 PostgreSQL,顺序规则如下

  • 同样的一种认证,当在 MySQL 返回结果,就会以此结果来判断是否通过验证,而不会再去 PostgreSQL 进行查询。
  • 同样的一种认证,当在 MySQL 未返回结果,就会以启用顺序去 PostgreSQL 查询,以 PostgreSQL 返回的结果来做判断。

# 请查看具体的外部认证/访问控制的实现方式

HTTP 认证/访问控制

MySQL 认证/访问控制

PostgreSQL 认证/访问控制