繁体   English   中英

下游设备可以使用共享访问策略签名的SAS令牌进行连接吗?

[英]Can downstream device connect using SAS token signed by Shared Access policy?

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

注意:设备正在使用MQTT

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM