Как зарегистрировать устройство с помощью строки подключения типа устройства в Azure IoT Hub c #?

в azure iot hub у нас есть несколько типов строки подключения

для регистрации устройства я могу использовать SharedAccessKeyName=iothubowner, но для отправки сообщения на устройство мне нужно использовать SharedAccessKeyName=device строку coonection, поскольку я собираюсь сгенерировать deviceId во время выполнения.

Итак, как я могу зарегистрировать устройство с помощью SharedAccessKeyName=device, чтобы я мог использовать ту же строку подключения для отправки сообщений на устройство концентратора iot.

код для регистрации устройства -

class Program
    {
        static RegistryManager registryManager;
        static string connectionString = "HostName=mydemo.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=key!";
        private static async Task AddDeviceAsync()
    {
        string deviceId = "dummydevice";
        Device device;
        try
        {
            device = await registryManager.AddDeviceAsync(new Device(deviceId));
        }
        catch (DeviceAlreadyExistsException)
        {
            device = await registryManager.GetDeviceAsync(deviceId);
        }
        Console.WriteLine("Generated device key: {0}", device.Authentication.SymmetricKey.PrimaryKey);
    }
    static void Main(string[] args)
    {
        registryManager = RegistryManager.CreateFromConnectionString(connectionString);
        AddDeviceAsync().Wait();
        Console.ReadLine();
    }

person Neo    schedule 16.10.2018    source источник


Ответы (1)


Чтобы устройство могло подключиться к концентратору Интернета вещей, вы можете использовать два типа строки подключения:

  • Политика общего доступа на уровне концентратора, которая выглядит так: HostName = yourhubname.azure-devices.net; SharedAccessKeyName = device; SharedAccessKey = yourkey.
  • Строка подключения устройства выглядит так: HostName = yourhubname.azure-devices.net; DeviceId = yourdeviceid; SharedAccessKey = yourdevicekey.

Вы можете найти первый на Портале на странице «Политики общего доступа» вашего хаба. Второй можно найти на портале на странице сведений об устройстве.

В следующем разделе документации объясняется, как можно использовать два разных типа ключей: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-security#use-sas-tokens-in-a-device-app

person Dominic Betts    schedule 16.10.2018