Как подключить нисходящее устройство с аутентификацией X.509 с помощью azure python sdk версии 2 к шлюзу с поддержкой Azure Edge

С устаревшей версией azure-iot-python-skd версии 1 стало возможным подключить устройство ниже по потоку с использованием аутентификации X.509 к прозрачному шлюзу с включенным iotedge, задав строку подключения следующим образом: HostName=<edge device hostname>;DeviceId=<device_id>;x509=true

Затем установите сертификаты с помощью set_option("TrustedCerts" ...), set_option("x509certificate", ...) и set_option("x509privatekey", ...)

Как это можно сделать с новой версией 2 sdk?

Я не мог понять, как это сделать с помощью create_from_x509_certificate(...) или create_from_connection_string(...).


person meshell    schedule 24.03.2020    source источник


Ответы (1)


попробуйте следующее, где вы передаете свой root_ca_cert в виде строки:

Создайте экземпляр клиента устройства, используя строку подключения:

device_client = IoTHubDeviceClient.create_from_connection_string (connection_string = ВАША СТРОКА ПОДКЛЮЧЕНИЯ, server_verification_cert = ВАШ КОРНЕВОЙ ЦС КАК СТРОКА)

ждать device_client.connect ()

person elhorton    schedule 03.04.2020
comment
К сожалению, это не работает, потому что нижестоящее устройство использует аутентификацию CA x509, а не строку подключения, как вы предлагаете. - person meshell; 19.04.2020
comment
извините, не уверен, что понимаю проблему ... при аутентификации через сертификат x509 вы можете создать клиент устройства из сертификата, используемого в строке подключения. См. Этот пример: github.com/Azure/azure-iot-sdk-python/blob/master/ - person elhorton; 27.04.2020