Как расшифровать Azure имя пользователя и пароль MQTT из токена SAS? - PullRequest
1 голос
/ 05 августа 2020

Я новичок на сервере Azure MQTT. Я создал учетную запись в Azure и устройство зарегистрировано. Я получил Hostname, DeviceID и shared access key.

Я использую устройство embedded, работающее на C. Раньше подключался к другому MQTT Broker.

Как получить password для MQTT broker из Azure? введите описание изображения здесь

что такое {signature-string}, {expiry} и {URL-encoded-resourceURI}? где взять всю эту информацию, если закодировать как кодировать в C?

Ответы [ 2 ]

1 голос
/ 05 августа 2020

{signature-string}: это строка подписи HMA C -SHA256 в следующем формате: {URL-encoded-resourceURI} + "\n" + expiry

{expiry}: срок действия учетных данных истекает. Обозначение представляет собой количество секунд с 00:00:00 UT C 1 января 1970 года.

{URL-encoded-resourceURI}: строчная кодировка URL-адреса URI ресурса. ID вашего ресурса rd-test-hub.azure-devices.net/devices/DFG87F5SK8. В кодировке и в нижнем регистре получается rd-test-hub.azure-devices.net%2Fdevices%2fdfg87f5sk8

Эта страница отлично справляется с объяснением полей. Если вы хотите узнать, как реализовать все это в C, вы можете почерпнуть вдохновение из C SDK для IoT Hub Этот может быть там, где маг c бывает, но мой C немного ржавый.

0 голосов
/ 05 августа 2020

У меня есть образец создания токена SAS из строки подключения в моей учетной записи GitHub. Вы можете найти его здесь: https://github.com/markrad/IoTSASTokenGenerate. Версии как на C, так и на C ++. Он использует Visual Studio для сборки, но код также должен основываться на Linux. Он не имеет зависимостей в том смысле, что реализует алгоритм HMA C SHA256, кодирование и декодирование URL и кодирование и декодирование Base64. Вы, вероятно, сможете заменить некоторые из них, поскольку ваша платформа может уже обеспечивать эту функциональность.

...