Skip to content

客户端认证

EMQX Dashboard 提供了开箱即用的认证与权限管理功能,用户仅通过用户界面,就可以快速实现客户端认证机制的配置,无需编写代码或手动编辑配置文件,即可对接各类数据源与认证服务,实现各个级别与各类场景下的安全配置,以更高的开发效率获得更安全的保障。在客户端认证页面中您可以快速创建和管理各类认证资源。

提示

配置好认证资源后,设备或 MQTT 客户端需要配置对应的认证信息,才可以安全连接到 EMQX。

创建认证

在客户端认证页面的右上角,点击创建按钮,即可进入到创建认证的页面。创建一个认证需要选择一种认证方式,选择完成后需要选择一个存储或获取认证信息的数据源(JWT 认证方式除外),认证数据可以从这些数据源包括数据库或 HTTP 服务中获取。最后,您需要配置连接到该数据源的连接信息。

认证方式

EMQX 支持以下认证机制:

  • 密码认证:使用用户名或客户端 ID 与密码对客户端进行认证,认证数据可从数据库或 HTTP 后端进行校验。
  • JWT:使用 JSON Web Token 对客户端进行认证。客户端通过用户名或密码字段携带 Token,EMQX 使用密钥、公钥或 JWKS 对 Token 进行校验,无需配置后端。
  • SCRAM:MQTT 5.0 的增强认证机制,通过挑战-响应方式实现客户端与服务端的双向认证,避免明文密码传输。
  • GSSAPI:MQTT 5.0 的增强认证机制,通过集成 Kerberos 实现基于票据的安全认证。
  • 客户端信息(Client Info):基于客户端连接元数据进行认证,例如客户端 ID、用户名、IP 地址或 TLS 证书信息。
image

认证数据源

在此步骤中,你需要根据上一步选择的认证机制来选择对应的数据源。

TIP

已被某个认证器使用的数据源,不能再次被选择。

关于数据源的完整介绍,请参见 EMQX 认证器

密码认证

当选择密码认证机制时,可以选择以下数据源之一:

  • 内置数据库:使用 EMQX 内置数据库存储用户名、客户端 ID 以及加密后的密码。
  • 外部数据库:将认证数据存储在外部数据源中。EMQX 支持多种主流数据库,包括 MySQLPostgreSQLMongoDBRedis 等。
  • HTTP 服务:通过外部 HTTP 服务获取认证结果。EMQX 会将客户端凭据发送至配置的 HTTP 接口,并根据接口返回结果完成认证。

JWT

当选择 JWT 认证机制时,无需配置数据源。所有认证逻辑均通过校验 Token 本身完成,校验方式包括使用密钥、公钥或 JWKS。

SCRAM

当选择 SCRAM 认证机制时,支持以下数据源:

  • 内置数据库:使用 EMQX 内置数据库存储 SCRAM 凭据(如加盐后的密码校验值)。
  • HTTP 服务:通过外部 HTTP 服务获取 SCRAM 认证数据,使 SCRAM 凭据可以在 EMQX 之外进行管理。

SCRAM 提供客户端与服务端的双向认证,确保通信双方身份可信,并防止凭据泄露。

更多信息请参见:

GSSAPI

当选择 GSSAPI 认证机制时,使用的数据源为:

  • Kerberos:EMQX 通过集成 Kerberos 密钥分发中心(KDC),使用 Kerberos 票据对客户端进行认证,实现集中式身份管理和高安全性的认证能力。

更多信息请参见 MQTT 5.0 增强认证 – Kerberos

Client-Info 认证

当选择 Client-Info 认证机制时,无需配置外部数据源。EMQX 会根据配置的规则,对客户端的连接信息进行评估并完成认证,例如客户端 ID、用户名、IP 地址或 TLS 证书信息。

更多信息请参见客户端信息认证

配置参数

每一个数据源都有一些连接或使用时的配置信息需要用户手动配置。选择了数据源之后,点击下一步继续配置选择好的数据源。完成配置后,点击创建即可快速完成认证配置。

详细的配置指导,参见各认证器文档。

认证列表

创建认证器成功后,可以在认证列表中查看和管理。列表中我们可以查看到认证器的数据源及认证方式,数据源状态,比如外部数据库没有正常部署成功和连接到的话,可看到目前数据源状态为已断开。鼠标悬浮到该字段的话,可以查看更多 EMQX 集群内所有节点连接到该数据源的状态。点击是否启用开关,可以快速开启和关闭该认证配置。

认证列表的每一栏都可以通过鼠标来拖动调整顺序,或通过操作列调整列表顺序,顺序对于认证列表来说有一定的重要性,因为 EMQX 允许创建多个认证器,这些认证器将按照在认证链中的位置顺序运行,如果在当前认证器中未检索到匹配的认证信息,将会切换至链上的下一个认证器继续认证过程。

操作列中还可以点击设置或删除认证器等。

image

注意

关闭认证器后,EMQX 将不再对客户端进行认证,所有客户端都可以连接到 EMQX。请谨慎操作。

用户管理

对于使用内置数据库的认证器,可以在用户管理页签中管理用户凭据。

你可以通过以下任一方式进入该页面:

  • 认证器列表页面中,点击内置数据库认证器对应操作列下的用户
  • 点击内置数据库进入其详情页面,然后切换到用户管理页签。

用户管理页面中,你可以创建、编辑和删除用户,设置超级用户权限,并通过下载模板、填写必要字段后点击导入用户批量导入用户。

在添加用户时,可以选择命名空间,将用户关联到特定的作用范围。

image

认证概览

点击列表页中数据源及认证方式列中的认证器名称,可以进入到认证器的概览页面。该页面提供了 EMQX 集群中认证器的一些数据指标,例如认证的成功和失败数,不匹配数和当前正在连接认证的速率等。

页面最下方的节点状态,可以从列表中查看每个节点下的指标数据。

image

认证设置

当需要修改认证配置时,可以点击列表页中的设置,在设置页面可以修改当前认证器的配置信息,如当外部数据库的一些连接信息发生变化时,需要修改内置数据库的账号类型是用户名还是客户端 ID 的时候,或修改认证密码的加密方式等。

注意

当使用内置数据库时,更新密码加密方式加盐方式将导致已添加的认证数据不可用,请谨慎操作。

image

更多内容

更多关于认证的详细解释与使用,参阅认证