Azure IoT 中心 MQTT 用户名和密码字符长度限制
Azure IoT Hub MQTT username and password character length limitation
我正在尝试通过 MQTT 或 HTTPS 使用 SARA-R410-02B 模块 (NB-IoT) 将数据导入 Azure Iot-Hub。 Microsofts MQTT guide for IoT-Hub 指出:
For the Username field, use {iothubhostname}/{device_id}/?api-version=2018-06-30, where {iothubhostname} is the full CName of the IoT hub.
For example, if the name of your IoT hub is contoso.azure-devices.net and if the name of your device is MyDevice01, the full Username field should contain: contoso.azure-devices.net/MyDevice01/?api-version=2018-06-30
对于密码字段,使用 SAS 令牌。 SAS 令牌的格式与 HTTPS 和 AMQP 协议相同:
SharedAccessSignature sig={signature-string}&se={expiry}&sr={URL-encoded-resourceURI}
这意味着 用户名(和密码)将超过我在 SARA-R410 上的 30 个字符限制。有什么解决办法吗? 我在 HTTPS 方面也有同样的限制。
我发现使用 x.509 证书可以解决密码限制,但用户名保持不变。
如果您的设备能够进行 X.509 身份验证,那么它将解决您的密码问题,但正如您所指出的,它不会解决您的用户身份问题。您可以在不使用 api 参数的情况下尝试它,看看它是否会采用默认值。如果它有效,那会给你几个角色来玩。
否则,您需要设置一个应用程序来接收遥测数据并将其转发到中心。例如将所有内容发布到 mosquito 服务器并让应用程序订阅并转发。不幸的是增加了更多的管理和故障点。
我试过不使用 HTTP 的 api 参数,但它不起作用。我在覆盖方面遇到了一些问题,所以我还没有尝试使用 MQTT,但我猜结果会一样吗?
我从 u-blox 得到了答复。他们说可以通过在 SARA-R410 上使用套接字实施 MQTT 协议来解决这个问题。这似乎是最好的解决方案。
我正在尝试通过 MQTT 或 HTTPS 使用 SARA-R410-02B 模块 (NB-IoT) 将数据导入 Azure Iot-Hub。 Microsofts MQTT guide for IoT-Hub 指出:
For the Username field, use {iothubhostname}/{device_id}/?api-version=2018-06-30, where {iothubhostname} is the full CName of the IoT hub.
For example, if the name of your IoT hub is contoso.azure-devices.net and if the name of your device is MyDevice01, the full Username field should contain: contoso.azure-devices.net/MyDevice01/?api-version=2018-06-30
对于密码字段,使用 SAS 令牌。 SAS 令牌的格式与 HTTPS 和 AMQP 协议相同:
SharedAccessSignature sig={signature-string}&se={expiry}&sr={URL-encoded-resourceURI}
这意味着 用户名(和密码)将超过我在 SARA-R410 上的 30 个字符限制。有什么解决办法吗? 我在 HTTPS 方面也有同样的限制。
我发现使用 x.509 证书可以解决密码限制,但用户名保持不变。
如果您的设备能够进行 X.509 身份验证,那么它将解决您的密码问题,但正如您所指出的,它不会解决您的用户身份问题。您可以在不使用 api 参数的情况下尝试它,看看它是否会采用默认值。如果它有效,那会给你几个角色来玩。
否则,您需要设置一个应用程序来接收遥测数据并将其转发到中心。例如将所有内容发布到 mosquito 服务器并让应用程序订阅并转发。不幸的是增加了更多的管理和故障点。
我试过不使用 HTTP 的 api 参数,但它不起作用。我在覆盖方面遇到了一些问题,所以我还没有尝试使用 MQTT,但我猜结果会一样吗?
我从 u-blox 得到了答复。他们说可以通过在 SARA-R410 上使用套接字实施 MQTT 协议来解决这个问题。这似乎是最好的解决方案。