Azure SAS Token



我刚刚将Visual Studio升级到2022,发现云连接器不再是VS的一部分。我们曾经从VS为我们的物联网设备生成SAS令牌,它们采用了以下形式:

SharedAccessSignature sr=azure-devices.net%2Fdevices%2F<DeviceID>&sig=<VS sig string>%3D&se=1979665819

我想‘没问题。我只想用PowerShell做一个。它看起来不一样,不起作用。我的设备得到";"意外断开";。我用了这个代码:

$context = (Get-AzStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageAccount).context
New-AzStorageAccountSASToken -Context $context 
-Service Table,Queue 
-ResourceType Service,Container,Object 
-Permission racwdlup 
-ExpiryTime $tenYears

它生成一个看起来像这样的令牌:

sv=2021-06-08&ss=qt&srt=sco&se=2032-09-29T15%3A28%3A56Z&sp=rwdlacup&sig=<PS sig string>

我想我可以在VS sig字符串的位置替换PS sig字符串,但这不起作用。将整个PS SAS令牌粘贴到设备的SAS令牌字段中也不起作用。不幸的是,我无法访问任何错误消息,只能访问设备在日志中显示的内容:MQTT Disconnected (unexpected)。如果我输出MQTT STATUS,它的值为4,根据手册,它只是指disconnected

我怀疑我的问题是旧的VS令牌是容器级别的令牌,而PowerShell命令生成帐户级别的令牌。是否存在使用PowerShell或C#生成正确令牌的方法?

事实证明已经有PowerShell命令可以做到这一点:New AzIotHubSasToken

New-AzIotHubSasToken -ResourceGroupName "myResourceGroup" 
-IotHubName "myIoTHub" 
-DeviceId "myDevice"
SharedAccessSignature sr=myIoTHub.azure-devices.net%2Fdevices%2FmyDevice
&sig=<signature>
&se=<epiry>

相关内容

  • 没有找到相关文章

最新更新