JWT 认证

    插件:

    客户端使用 Token 作为用户名或密码(取决于插件配置),发起连接时 EMQ X 使用配置中的密钥、证书进行解密,如果能成功解密则认证成功,否则认证失败。

    配置项

    要启用 JWT 认证,需要在 etc/plugins/emqx_auth_jwt.conf 中配置以下内容:

    客户端携带 JWT 的位置,用于配置客户端 JWT 字符串携带位置,可选 username 与 password。

    auth.jwt.verify_claims

    1. auth.jwt.verify_claims = on

    JWT 的 Payload 应当是 JSON 结构的数据, 中 name 即为需要验证的 Payload 数据 key 值,假设你的 Payload 为:

    你可以使用如下配置,当客户端携带此 Token 时,将验证客户端 username 是否等于 emqx_client_username

    1. ## - %c: clientid
    2. auth.jwt.verify_claims.username = %u
    • %u:当前客户端 username

    JWT 本身包含了认证信息,一旦泄露,任何人都可以获得该令牌的所有权限,使用 JWT 时建议启用 TLS 加密传输。 JWT 使用过程中无法在过期前废止某个 Token,请妥善设置有效时长并保管好密钥等加密信息。