Поделиться через


Краткое руководство. Публикация и подписка на сообщения MQTT в пространстве имен сетки событий с портал Azure

В этом кратком руководстве вы используете портал Azure для создания пространства имен Сетки событий с включенным брокером MQTT, создания вложенных ресурсов, таких как клиенты, группы клиентов и пространства разделов, предоставление клиентам доступа к публикации и подписке на тематические пространства, а затем публикация и получение сообщений между клиентами.

Необходимые компоненты

  • Создайте бесплатную учетную запись Azure, если у вас нет подписки Azure.
  • Ознакомьтесь с обзором сетки событий перед началом работы с этим руководством, если вы не знакомы с Сетка событий Azure.
  • Убедитесь, что порт 8883 открыт в брандмауэре. В этом руководстве используется протокол MQTT, который взаимодействует через порт 8883. Этот порт может быть заблокирован в некоторых корпоративных и образовательных сетевых средах.
  • Для создания отпечатка и проверки подлинности подключения клиента требуется сертификат клиента X.509.

Создание примера сертификата клиента и отпечатка

Если у вас еще нет сертификата, можно создать пример сертификата с помощью интерфейса командной строки шага. Рассмотрите возможность установки вручную для Windows.

После успешной установки шага необходимо открыть командную строку в папке профиля пользователя (тип Win+R %USERPROFILE%).

  1. Чтобы создать корневые и промежуточные сертификаты, выполните следующую команду. Помните пароль, который необходимо использовать на следующем шаге.

    step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
    
  2. Используйте файлы ЦС, созданные для создания сертификата для первого клиента. Убедитесь, что в команде используется правильный путь к файлам сертификата и секретов.

    step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  3. Чтобы просмотреть отпечаток, выполните команду Step.

    step certificate fingerprint client1-authn-ID.pem
    
  4. Теперь создайте сертификат для второго клиента.

    step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  5. Чтобы просмотреть отпечаток, используемый со вторым клиентом, выполните команду Step.

    step certificate fingerprint client2-authn-ID.pem
    

Создание пространства имен

  1. Войдите на портал Azure.

  2. В строке поиска введите пространства имен сетки событий и выберите в раскрывающемся списке пространства имен сетки событий.

    Снимок экрана: поиск пространства имен Сетки событий на портал Azure.

  3. На странице "Пространства имен сетки событий" нажмите кнопку "+ Создать " на панели инструментов.

  4. На странице "Создание пространства имен" выполните следующие действия.

    1. Выберите свою подписку Azure.

    2. Выберите существующую группу ресурсов или нажмите кнопку "Создать" и введите имя группы ресурсов.

    3. Присвойте пространству имен уникальное имя. Имя пространства имен должно быть уникальным для каждого региона, так как оно представляет запись DNS. Не используйте имя, указанное на изображении. Вместо этого создайте собственное имя — оно должно находиться в диапазоне от 3 до 50 символов и содержать только значения a-z, A-Z, 0-9 и -.

    4. Выберите расположение пространства имен Сетки событий. В настоящее время пространство имен Сетки событий доступно только в выборе регионов.

      Снимок экрана: вкладка

  5. В нижней части страницы выберите Review + create (Проверить и создать).

  6. На вкладке "Просмотр и создание" страницы "Создать пространство имен" нажмите кнопку "Создать".

    Примечание.

    Чтобы обеспечить простое краткое руководство, вы будете использовать только страницу "Основы" для создания пространства имен. Подробные инструкции по настройке сети, безопасности и других параметров на других страницах мастера см. в статье "Создание пространства имен".

  7. После успешного развертывания выберите "Перейти к ресурсу ", чтобы перейти на страницу обзора пространства имен сетки событий для пространства имен.

  8. На странице "Обзор" вы увидите, что брокер MQTT находится в состоянии "Отключено ". Чтобы включить брокер MQTT, выберите ссылку "Отключено ", она перенаправит вас на страницу "Конфигурация".

  9. На странице "Конфигурация" выберите параметр "Включить брокер MQTT" и нажмите кнопку "Применить ", чтобы применить параметры.

    Снимок экрана: страница конфигурации пространства имен сетки событий для включения MQTT.

Создание клиентов

  1. В меню слева выберите "Клиенты " в разделе брокера MQTT.

  2. На странице "Клиенты" выберите +Клиент на панели инструментов.

    Снимок экрана: страница

  3. На странице "Создание клиента" введите имя клиента. Имена клиентов должны быть уникальными в пространстве имен.

  4. Имя проверки подлинности клиента по умолчанию используется для имени клиента. В этом руководстве измените его client1-authn-IDна . Необходимо включить это имя, как Username в пакет CONNECT.

  5. В этом руководстве вы используете проверку подлинности на основе отпечатков. Включите отпечаток первого сертификата клиента в первичный отпечаток.

    Снимок экрана: конфигурация клиента 1.

  6. Нажмите кнопку "Создать " на панели инструментов, чтобы создать другой клиент.

  7. Повторите описанные выше действия, чтобы создать второй клиент с именем client2. Измените имя client2-authn-ID проверки подлинности и включите отпечаток второго сертификата клиента в первичный отпечаток.

    Снимок экрана: конфигурация клиента 2.

    Примечание.

    • Чтобы обеспечить простое краткое руководство, вы будете использовать совпадение отпечатков для проверки подлинности. Подробные инструкции по использованию цепочки сертификатов ЦС X.509 для проверки подлинности клиента см. в разделе проверки подлинности клиента с помощью цепочки сертификатов.
    • Кроме того, мы используем группу клиентов по умолчанию $all , которая включает все клиенты в пространстве имен для этого упражнения. Дополнительные сведения о создании пользовательских групп клиентов с помощью атрибутов клиента см. в разделах "Группы клиентов".

Создание пространств разделов

  1. В меню слева выберите разделы в разделе брокера MQTT.

  2. На странице "Пространства тем" выберите "+ Раздел" на панели инструментов.

    Снимок экрана: страница

  3. Укажите имя пространства тем на странице "Создание пространства тем".

    Снимок экрана: создание пространства тем с именем.

  4. Введите contosotopics/topic1 шаблон раздела и нажмите кнопку "Создать ", чтобы создать пространство тем.

    Снимок экрана: конфигурация пространства тем.

Настройка управления доступом с помощью привязок разрешений

  1. В меню слева выберите привязки разрешений в разделе брокера MQTT.

  2. На странице "Привязки разрешений" выберите +Привязка разрешений на панели инструментов.

    Снимок экрана: страница

  3. Настройте привязку разрешений следующим образом:

    1. Укажите имя привязки разрешений. Например, contosopublisherbinding.

    2. Для имени группы клиентов выберите $all.

    3. Для имени пространства тем выберите пространство тем, созданное на предыдущем шаге.

    4. Предоставьте издателю разрешение на группу клиентов в пространстве тем.

      Снимок экрана: создание первой привязки разрешений.

  4. Нажмите кнопку "Создать", чтобы создать привязку разрешений.

  5. Создайте еще одну привязку разрешений (contososubscriberbinding) путем выбора и привязки разрешений на панели инструментов.

  6. Укажите имя и предоставьте подписчику группы клиентов $all доступ к ContosoTopicSpace, как показано ниже.

    Снимок экрана: создание второй привязки разрешений.

  7. Нажмите кнопку "Создать", чтобы создать привязку разрешений.

Подключение клиентов к пространству имен EG с помощью приложения MQTTX

  1. Для публикации и подписки на сообщения MQTT можно использовать любой из ваших любимых инструментов. Для демонстрации публикация и подписка отображается с помощью приложения MQTTX, из которого можно скачать https://mqttx.app/.

  2. Выберите + на панели навигации слева.

  3. Настройка client1 с помощью

    • Имя как client1 (это значение может быть любым)

    • Идентификатор клиента как client1-session1 (идентификатор клиента в пакете CONNECT используется для идентификации идентификатора сеанса для подключения клиента)

    • Имя пользователя как client1-authn-ID. Это значение должно соответствовать значению имени проверки подлинности клиента, указанного при создании клиента в портал Azure.

      Внимание

      Имя пользователя должно соответствовать имени проверки подлинности клиента в метаданных клиента.

  4. Обновите имя узла до имени узла MQTT на странице обзора пространства имен.

    Снимок экрана: страница обзора пространства имен сетки событий с именем узла MQTT.

  5. Обновите порт до 8883.

  6. Переключение SSL/TLS на ON.

  7. Переключите ssl Secure в ON, чтобы убедиться, что проверка сертификата службы.

  8. Выберите сертификат как ЦС или самозаверяющий сертификат.

  9. Укажите путь к файлу сертификата клиента.

  10. Укажите путь к файлу ключа клиента.

  11. Остальные параметры можно оставить с предопределенными значениями по умолчанию.

    Снимок экрана: часть 1 конфигурации клиента 1 в приложении MQTTX.

  12. Выберите "Подключиться", чтобы подключить клиента к брокеру MQTT.

  13. Повторите описанные выше действия, чтобы подключить второй клиент клиента2 с соответствующими сведениями о проверке подлинности, как показано ниже.

    Снимок экрана: часть 1 конфигурации клиента 1 в приложении MQTTX.

    Снимок экрана: часть 2 конфигурации клиента 2 в приложении MQTTX.

Публикация и подписка с помощью приложения MQTTX

  1. После подключения клиентов для клиента 2 нажмите кнопку +Создать подписку .

  2. Добавьте contosotopics/topic1 в качестве раздела и нажмите кнопку "Подтвердить". Другие поля можно оставить существующими значениями по умолчанию.

    Снимок экрана: конфигурация раздела подписки в приложении MQTTX.

  3. Выберите client1 в левой железной дороге.

  4. В качестве раздела для клиента1 в верхней части поля создания сообщения введите contosotopics/topic1 раздел для публикации.

  5. Создание сообщения. Вы можете использовать любой формат или JSON, как показано ниже.

  6. Нажмите кнопку Send (Отправить).

    Снимок экрана: публикация сообщений в разделе в приложении MQTTX.

  7. Сообщение должно быть опубликовано в клиенте 1.

    Снимок экрана: сообщение, опубликованное в разделе в приложении MQTTX.

  8. Переключитесь на client2. Убедитесь, что клиент2 получил сообщение.

    Снимок экрана: сообщение, полученное клиентом подписки на приложение MQTTX.