下游设备是否可以使用共享访问策略签名的 SAS 令牌进行连接?
Can downstream device connect using SAS token signed by Shared Access policy?
在使用 Azure IoT Edge 作为透明网关时,下游设备是否可以使用共享访问策略密钥使用 SAS 令牌进行身份验证? (设备、iothubowner 等?)。我们已经能够使用由设备主密钥签名的 SAS 令牌成功连接,但尝试使用共享访问策略密钥进行连接似乎不起作用。
注意:设备正在使用 MQTT
是的,如果设备不是 IoTHub 中边缘设备的子设备,这应该有效。查看这些链接以了解有关如何将设备添加为边缘设备的子设备的更多信息 https://aka.ms/exofdocs and https://aka.ms/iot-edge-offline。
这是因为,如果叶设备是子设备,EdgeHub 将尝试在本地对其进行身份验证,为此它只使用设备的密钥。
如果叶设备不是 Edge 设备的子设备,那么您应该能够使用 device/iothub 作用域密钥连接到 EdgeHub,之后 EdgeHub 将使用 IoTHub 对设备进行身份验证。请注意,连接字符串的格式应为 –
HostName=.azure-devices.net;DeviceId=;SharedAccessKeyName=;SharedAccessKey=;GatewayHostName=
我认为该脚本(它是一个 eventhub 脚本)不会为 IoT 中心创建正确的 SAS 令牌。最简单的方法是从 Azure 云 CLI(在 Azure 门户中,单击顶部导航栏中的“>_”按钮。然后您可以 运行 此命令:
az iot hub generate-sas-token -n [你的 iothub 名称] --policy device --key-type primary --duration [你希望令牌有效的持续时间(以秒为单位)]
尝试使用该 SAS 令牌。我今晚用 python paho.mqtt 客户端测试了这个,它工作正常。它连接到 IoT Edge 并成功将消息发送到模块和 IoT 中心。
在使用 Azure IoT Edge 作为透明网关时,下游设备是否可以使用共享访问策略密钥使用 SAS 令牌进行身份验证? (设备、iothubowner 等?)。我们已经能够使用由设备主密钥签名的 SAS 令牌成功连接,但尝试使用共享访问策略密钥进行连接似乎不起作用。
注意:设备正在使用 MQTT
是的,如果设备不是 IoTHub 中边缘设备的子设备,这应该有效。查看这些链接以了解有关如何将设备添加为边缘设备的子设备的更多信息 https://aka.ms/exofdocs and https://aka.ms/iot-edge-offline。
这是因为,如果叶设备是子设备,EdgeHub 将尝试在本地对其进行身份验证,为此它只使用设备的密钥。
如果叶设备不是 Edge 设备的子设备,那么您应该能够使用 device/iothub 作用域密钥连接到 EdgeHub,之后 EdgeHub 将使用 IoTHub 对设备进行身份验证。请注意,连接字符串的格式应为 – HostName=.azure-devices.net;DeviceId=;SharedAccessKeyName=;SharedAccessKey=;GatewayHostName=
我认为该脚本(它是一个 eventhub 脚本)不会为 IoT 中心创建正确的 SAS 令牌。最简单的方法是从 Azure 云 CLI(在 Azure 门户中,单击顶部导航栏中的“>_”按钮。然后您可以 运行 此命令:
az iot hub generate-sas-token -n [你的 iothub 名称] --policy device --key-type primary --duration [你希望令牌有效的持续时间(以秒为单位)]
尝试使用该 SAS 令牌。我今晚用 python paho.mqtt 客户端测试了这个,它工作正常。它连接到 IoT Edge 并成功将消息发送到模块和 IoT 中心。