Как создать токен SAS-концентратора Azure IoT только для одного устройства / службы?

Я хочу сгенерировать новый токен SAS для доступа к концентратору IoT Azure с помощью Paho MQTT с Java. Я хочу получить сообщения MQTT из бэкэнд-сервиса Java.

Конечно, я хочу ограничить доступ для каждого экземпляра службы к определенным устройствам.

Это команда, которую я использую для создания токена.

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, который я не хочу предоставлять своему бэкэнд-сервису.

Я не могу понять концепцию разрешений в IoT-узле Azure даже после прочтения документов 3 раза: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-security

Когда я буду использовать service политика и когда я буду использовать device политика?

Спасибо!

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

Другие вопросы по тегам