1

我是Azure MQTT服务器新手。我在 Azure 中创建了帐户并注册了设备。我收到了HostnameDeviceIDshared access key

我正在使用embedded正在运行的设备 C。以前我与另一个MQTT Broker.

如何从 中获取passwordfor MQTT brokerthe Azure在此处输入图像描述

什么是{signature-string}{expiry}{URL-encoded-resourceURI}如果要编码如何在 C 中编码,我从哪里获得所有这些信息?

4

2 回答 2

2

{signature-string}:这是一个 HMAC-SHA256 签名字符串,格式如下:{URL-encoded-resourceURI} + "\n" + expiry

{expiry}:这是凭据将到期的时间。该符号是自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数。

{URL-encoded-resourceURI}: 资源 URI 的小写 URL 编码。您的资源 ID 是 rd-test-hub.azure-devices.net/devices/DFG87F5SK8。编码和小写,这将使rd-test-hub.azure-devices.net%2Fdevices%2fdfg87f5sk8

此页面在解释字段方面做得很好。如果您想了解如何在 C 中实现这一切,您可以从C SDK for IoT Hub中获得一些灵感。 可能是魔法发生的地方,但我的 C 有点生疏。

于 2020-08-05T08:11:00.963 回答
0

我有一个从我的 GitHub 帐户上的连接字符串生成 SAS 令牌的示例。你可以在这里找到它:https ://github.com/markrad/IoTSASTokenGenerate 。C 和 C++ 版本。它使用 Visual Studio 来构建,但代码也应该在 Linux 上构建。它没有依赖关系,因为它实现了 HMAC SHA256 算法、URL 编码和解码以及 Base64 编码和解码。您可能可以替换其中的一些,因为您的平台可能已经提供了该功能。

于 2020-08-05T20:45:12.910 回答