物联网场景中基于 JWT 令牌的 MQTT 身份验证的 HAProxy 集成

问题描述 投票:0回答:1

我正在致力于实现一个 IoT 场景,其中客户端设备通过 WebSocket 协议向 MQTT 代理发送 MQTT 消息。在此设置中,客户端设备提供 JWT 令牌,MQTT 代理验证令牌的签名。 为了增强安全性并限制对经过验证的客户端的访问,我有兴趣将 JWT 签名验证过程卸载到 HAProxy。这样,只有拥有有效 JWT 令牌的客户端才被允许连接到代理。

客户端利用 Paho MQTT 库并在连接期间提供 JWT 令牌作为密码字段:

opts = {
    clientId: clientID,
    username: username,
    password: password  // JWT token goes here
};
mqttClient = mqtt.connect(address, opts);

我的问题是 HAProxy 是否有能力提取此 JWT 令牌字段并将其传递到验证过程以进行进一步验证。

我非常感谢您就此事提供的任何建议或见解。谢谢。

jwt mqtt haproxy
1个回答
0
投票

这不起作用,因为只有在与代理完全建立 WebSocket 连接之后,才会发送 MQTT Connect 数据包。

HA 代理需要:

  • 建立到客户端的完整 WebSocket 连接
  • 等待连接数据包
  • 检查密码
  • 验证密码
  • 打开与代理的新 WebSocket 连接
  • 将连接数据包重播到代理

只需让经纪商验证密码即可。

© www.soinside.com 2019 - 2024. All rights reserved.