【问题标题】:How to generate an Azure IoT hub SAS token for one device/service only?如何仅为一个设备/服务生成 Azure IoT 中心 SAS 令牌?
【发布时间】:2019-06-05 11:10:23
【问题描述】:

我想生成一个新的 SAS 令牌,用于使用带有 Java 的 Paho MQTT 访问 Azure IoT 中心。我想从后端 Java 服务检索 MQTT 消息。

当然我想限制每个服务实例对某些设备的访问。

这是我用来生成令牌的命令。

az iot hub generate-sas-token -d device1 -n iothubname --policy device

这是我收到的错误消息

{u'ExceptionMessage': u'Tracking ID<HIDDEN`enter code here`>:TimeStamp:01/01/2019 14:30:33', u'Message': u'ErrorCode:IotHubUnauthorizedAccess;Unauthorized'}

在我尝试之前,我尝试使用策略“服务”(因为该令牌应该由后端服务使用),但也不起作用:

az iot hub generate-sas-token -d device1 -n iothubname --policy service

{u'ExceptionMessage': u'Tracking ID:<>TimeStamp:01/01/2019 14:37:39', u'Message': u'ErrorCode:IotHubUnauthorizedAccess;Unauthorized'}

唯一有效的是az iot hub generate-sas-token -n iothubname,但关于文档,这会创建一个带有 iothubowner 政策的令牌,我不想提供我的后端服务。

即使阅读了 3 次文档,我也无法真正理解 Azure IoT Hub 上的权限概念:https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-security#iot-hub-permissions

什么时候使用service 策略,什么时候使用device 策略?

谢谢!

【问题讨论】:

  • 能否告诉我您是否使用 az login 首次登录 Azure?详情请查看此链接docs.microsoft.com/en-us/cli/azure/…
  • 是的,我已经使用了,否则我认为命令 az iot hub generate-sas-token -n iothubname 将无法正常工作。

标签: azure mqtt azure-iot-hub


【解决方案1】:

试试

az iot hub generate-sas-token -n [IoTHub Name] --policy registryRead --key-type secondary

您可以在以下链接的示例中查看相同的详细信息

https://docs.microsoft.com/en-us/cli/azure/ext/azure-cli-iot-ext/iot/hub?view=azure-cli-latest#ext-azure-cli-iot-ext-az-iot-hub-generate-sas-token

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2017-08-16
    • 2017-12-29
    • 1970-01-01
    • 2022-09-28
    • 2020-03-08
    • 2020-08-07
    相关资源
    最近更新 更多