0

使用 Azure IoT Edge 作为透明网关时,下游设备是否可以使用共享访问策略密钥使用 SAS 令牌进行身份验证?(设备、iothubowner 等?)。我们已经能够使用由设备主键签名的 SAS 令牌成功连接,但尝试使用共享访问策略密钥似乎不起作用。

注意:设备使用 MQTT

4

2 回答 2

0

是的,如果设备不是 IoTHub 中边缘设备的子设备,这应该可以工作。查看这些链接以了解有关如何将设备添加为边缘设备https://aka.ms/exofdocshttps://aka.ms/iot-edge-offline的子设备的更多信息。

这是因为,如果叶子设备是子设备,EdgeHub 将尝试在本地对其进行身份验证,为此它只使用设备的密钥。

如果叶子设备不是边缘设备的子设备,那么您应该能够使用 device/iothub 范围键连接到 EdgeHub,因为这样 EdgeHub 将使用 IoTHub 对设备进行身份验证。请注意,连接字符串的格式应为 – HostName=.azure-devices.net;DeviceId=;SharedAccessKeyName=;SharedAccessKey=;GatewayHostName=

于 2018-10-15T21:56:09.593 回答
0

我认为该脚本(它是一个 eventthub 脚本)不会为 IoT 中心创建正确的 SAS 令牌。最简单的方法是从 Azure Cloud CLI 执行此操作(在 azure 门户中,单击顶部导航栏中的“>_”按钮。然后您可以运行以下命令:

az iot hub generate-sas-token -n [您的 iothub 名称] --policy device --key-type primary --duration [您希望令牌有效的持续时间,以秒为单位]

尝试使用该 SAS 令牌。我今晚用 python paho.mqtt 客户端对此进行了测试,它运行良好。它连接到 IoT Edge 并成功将消息发送到模块和 IoT 中心。

于 2018-10-17T00:31:20.003 回答