外部认证与访问控制
外部认证与访问控制帮助用户使用自己服务进行认证鉴权,目前支持使用 MySQL, PostgreSQL 作为数据源,也支持连接到 HTTP 服务做认证鉴权。
外部认证与访问控制的原理和规则
在完成了服务的配置的之后,当客户端需要进行认证时, EMQX Cloud 将使用当前客户端的信息填充到设置的查询语句当中,并且执行用户配置的认证。 通过返回来判断是否通过验证。
若同时启用了内置认证,EMQX Cloud 将按照默认认证、自定义外部认证的顺序进行链式认证:
- 一旦认证成功,终止认证链并允许客户端接入
- 一旦认证失败,终止认证链并禁止客户端接入
当多种认证方式同时启用时,系统会默认按照模块的启用顺序来执行查询。例如先开启了 MySQL 认证,后开启了 PostgreSQL,顺序规则如下
- 同样的一种认证,当在 MySQL 返回结果,就会以此结果来判断是否通过验证,而不会再去 PostgreSQL 进行查询。
- 同样的一种认证,当在 MySQL 未返回结果,就会以启用顺序去 PostgreSQL 查询,以 PostgreSQL 返回的结果来做判断。
外部认证/访问控制数据源
查看认证数据源顺序
当添加了多个外部认证数据源时,用户可以查看它们的执行顺序。认证将按从左到右的顺序在认证链中依次处理。
重新排序认证源
要调整外部认证源的执行顺序,您可以通过在认证设置页面点击停用认证来禁用某个认证方法。重新启用时,该方法将被放置在认证链的末尾。