我正在致力于实现一个 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 令牌字段并将其传递到验证过程以进行进一步验证。
我非常感谢您就此事提供的任何建议或见解。谢谢。
这不起作用,因为只有在与代理完全建立 WebSocket 连接之后,才会发送 MQTT Connect 数据包。
HA 代理需要:
只需让经纪商验证密码即可。