Azure IoT Hub Java SDK, подключение устройств X.509, мультиплексированных через одно соединение AMQP - PullRequest
0 голосов
/ 28 июня 2018

Я автоматически подготовил группу устройств IoT через Azure IoT DPS. Устройства зарегистрированы на моем IoT-хабе. Все устройства имеют сертификат аутентификации X.509.

Теперь я хочу отправлять сообщения на устройства. Все сертификаты доступны, и я могу подключиться с DeviceClient к устройству в концентраторе. Это метод используемого в Java Azure IoT SDK:

public static DeviceClient createFromSecurityProvider(String uri, String deviceId, SecurityProvider securityProvider, IotHubClientProtocol protocol) throws URISyntaxException, IOException

Требуется SecurityProviderX509Cert в качестве параметра.

Однако каждый DeviceClient имеет свое физическое соединение. Я хочу использовать мультиплексирование AMQP с помощью этого конструктора:

public DeviceClient(String connString, TransportClient transportClient) throws URISyntaxException

Это не работает с устройствами X.509. В строке подключения я использовал ключ общего доступа из моей политики общего доступа из хаба, но получил исключение:

Несанкционировано: устройство 'xxx' на IotHub 'yyy' не имеет PrimaryKey или SecondaryKey

Я предполагаю, что это будет работать, только если я зарегистрирую устройство симметричными ключами. Однако эти устройства не могут быть зарегистрированы автоматически через Azure DPS. Я могу зарегистрировать устройства только с X.509 или TPM.

Итак, как мне найти способ подключить несколько устройств X.509 через одно соединение AMQPS?

1 Ответ

0 голосов
/ 03 июля 2018

Похоже, что Azure IoT Hub SDK для Java не поддерживает мультиплексирование для устройств X.509.

Вы можете опубликовать требование для этой функции на github (https://github.com/Azure/azure-iot-sdk-java/issues).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...