繁体   English   中英

Azure SAS 代币

[英]Azure SAS Token

我刚刚将 Visual Studio 升级到 2022,发现 Cloud Connector 不再是 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 字符串 go 的位置替换 PS sig 字符串,但这没有用。 将整个 PS SAS 令牌粘贴到设备的 SAS 令牌字段中也不起作用。 不幸的是,我无权访问任何错误消息,只能访问设备在日志中输入的内容: MQTT Disconnected (unexpected) 如果我 output 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>

暂无
暂无

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

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