Как создать токен 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