Краткое руководство. Публикация и подписка на сообщения MQTT в пространстве имен сетки событий с портал Azure
В этой статье объясняется, как использовать портал Azure для выполнения описанных ниже задач.
- Создание пространства имен Сетки событий и включение брокера MQTT
- Создание вложенных ресурсов, таких как клиенты, группы клиентов и пространства разделов
- Предоставление клиентам доступа к публикации и подписке на пространства разделов
- Публикация и получение сообщений между клиентами
Необходимые компоненты
- Создайте бесплатную учетную запись Azure, если у вас нет подписки Azure.
- Ознакомьтесь с обзором сетки событий перед началом работы с этим руководством, если вы не знакомы с Сетка событий Azure.
- Убедитесь, что порт 8883 открыт в брандмауэре. В этом руководстве используется протокол MQTT, который взаимодействует через порт 8883. В некоторых корпоративных и академических сетях этот порт может быть заблокирован.
- Для создания отпечатка и проверки подлинности подключения клиента требуется сертификат клиента X.509.
Создание примера сертификата клиента и отпечатка
Если у вас еще нет сертификата, можно создать пример сертификата с помощью интерфейса командной строки шага. Рассмотрите возможность установки вручную для Windows.
После успешной установки шага необходимо открыть командную строку в папке профиля пользователя (тип Win+R %USERPROFILE%).
Чтобы создать корневые и промежуточные сертификаты, выполните следующую команду. Помните пароль, который необходимо использовать на следующем шаге.
step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
Используйте файлы ЦС, созданные для создания сертификата для первого клиента. Убедитесь, что в команде используется правильный путь к файлам сертификата и секретов.
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
Чтобы просмотреть отпечаток, выполните команду Step.
step certificate fingerprint client1-authn-ID.pem
Теперь создайте сертификат для второго клиента.
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
Чтобы просмотреть отпечаток, используемый со вторым клиентом, выполните команду Step.
step certificate fingerprint client2-authn-ID.pem
Создание пространства имен
Войдите на портал Azure.
В строке поиска введите пространства имен сетки событий и выберите в раскрывающемся списке пространства имен сетки событий.
На странице "Пространства имен сетки событий" нажмите кнопку "+ Создать " на панели инструментов.
На странице "Создание пространства имен" выполните следующие действия.
Выберите свою подписку Azure.
Выберите существующую группу ресурсов или нажмите кнопку "Создать" и введите имя группы ресурсов.
Присвойте пространству имен уникальное имя. Имя пространства имен должно быть уникальным для каждого региона, так как оно представляет запись DNS. Не используйте имя, указанное на изображении. Вместо этого создайте собственное имя — оно должно находиться в диапазоне от 3 до 50 символов и содержать только значения a-z, A-Z, 0-9 и
-
.Выберите расположение пространства имен Сетки событий. В настоящее время пространство имен Сетки событий доступно только в выборе регионов.
В нижней части страницы выберите Review + create (Проверить и создать).
На вкладке "Просмотр и создание" страницы "Создать пространство имен" нажмите кнопку "Создать".
Примечание.
Чтобы обеспечить простое краткое руководство, вы будете использовать только страницу "Основы" для создания пространства имен. Подробные инструкции по настройке сети, безопасности и других параметров на других страницах мастера см. в статье "Создание пространства имен".
После успешного развертывания выберите "Перейти к ресурсу ", чтобы перейти на страницу обзора пространства имен сетки событий для пространства имен.
На странице "Обзор" вы увидите, что брокер MQTT находится в состоянии "Отключено ". Чтобы включить брокер MQTT, выберите ссылку "Отключено ", она перенаправит вас на страницу "Конфигурация".
На странице "Конфигурация" выберите параметр "Включить брокер MQTT" и нажмите кнопку "Применить ", чтобы применить параметры.
Создание клиентов
В меню слева выберите "Клиенты " в разделе брокера MQTT.
На странице "Клиенты" выберите +Клиент на панели инструментов.
На странице "Создание клиента" введите имя клиента. Имена клиентов должны быть уникальными в пространстве имен.
Имя проверки подлинности клиента по умолчанию используется для имени клиента. В этом руководстве измените его
client1-authn-ID
на . Необходимо включить это имя, какUsername
в пакет CONNECT.В этом руководстве вы используете проверку подлинности на основе отпечатков. Включите отпечаток первого сертификата клиента в первичный отпечаток.
Нажмите кнопку "Создать " на панели инструментов, чтобы создать другой клиент.
Повторите описанные выше действия, чтобы создать второй клиент с именем
client2
. Измените имяclient2-authn-ID
проверки подлинности и включите отпечаток второго сертификата клиента в первичный отпечаток.Примечание.
- Чтобы обеспечить простое краткое руководство, вы будете использовать совпадение отпечатков для проверки подлинности. Подробные инструкции по использованию цепочки сертификатов ЦС X.509 для проверки подлинности клиента см. в разделе проверки подлинности клиента с помощью цепочки сертификатов.
- Кроме того, мы используем группу клиентов по умолчанию
$all
, которая включает все клиенты в пространстве имен для этого упражнения. Дополнительные сведения о создании пользовательских групп клиентов с помощью атрибутов клиента см. в разделах "Группы клиентов".
Создание пространств разделов
В меню слева выберите разделы в разделе брокера MQTT.
На странице "Пространства тем" выберите "+ Раздел" на панели инструментов.
Укажите имя пространства тем на странице "Создание пространства тем".
Выберите и добавьте шаблон раздела.
Введите
contosotopics/topic1
шаблон раздела и нажмите кнопку "Создать ", чтобы создать пространство тем.
Настройка управления доступом с помощью привязок разрешений
В меню слева выберите привязки разрешений в разделе брокера MQTT.
На странице "Привязки разрешений" выберите +Привязка разрешений на панели инструментов.
Настройте привязку разрешений следующим образом:
Укажите имя привязки разрешений. Например,
contosopublisherbinding
.Для имени группы клиентов выберите $all.
Для имени пространства тем выберите пространство тем, созданное на предыдущем шаге.
Предоставьте издателю разрешение на группу клиентов в пространстве тем.
Нажмите кнопку "Создать", чтобы создать привязку разрешений.
Создайте еще одну привязку разрешений (
contososubscriberbinding
) путем выбора и привязки разрешений на панели инструментов.Укажите имя и предоставьте подписчику группы клиентов $all доступ к ContosoTopicSpace, как показано ниже.
Нажмите кнопку "Создать", чтобы создать привязку разрешений.
Подключение клиентов в пространство имен EG с помощью приложения MQTTX
Для публикации и подписки на сообщения MQTT можно использовать любой из ваших любимых инструментов. Для демонстрации публикация и подписка отображается с помощью приложения MQTTX, из которого можно скачать https://mqttx.app/.
Настройка client1 с помощью
Имя как
client1
(это значение может быть любым)Идентификатор клиента как
client1-session1
(идентификатор клиента в пакете CONNECT используется для идентификации идентификатора сеанса для подключения клиента)Имя пользователя как
client1-authn-ID
. Это значение должно соответствовать значению имени проверки подлинности клиента, указанного при создании клиента в портал Azure.Внимание
Имя пользователя должно соответствовать имени проверки подлинности клиента в метаданных клиента.
Обновите имя узла до имени узла MQTT на странице обзора пространства имен.
Обновите порт до 8883.
Переключение SSL/TLS на ON.
Переключите ssl Secure в ON, чтобы убедиться, что проверка сертификата службы.
Выберите сертификат как самозаверяющий.
Укажите путь к файлу сертификата клиента.
Укажите путь к файлу ключа клиента.
Остальные параметры можно оставить с предопределенными значениями по умолчанию.
Выберите Подключение для подключения клиента к брокеру MQTT.
Повторите описанные выше действия, чтобы подключить второй клиент клиента2 с соответствующими сведениями о проверке подлинности, как показано ниже.
Публикация и подписка с помощью приложения MQTTX
После подключения клиентов для клиента 2 нажмите кнопку +Создать подписку .
Добавьте
contosotopics/topic1
в качестве раздела и нажмите кнопку "Подтвердить". Другие поля можно оставить существующими значениями по умолчанию.Выберите client1 в левой железной дороге.
В качестве раздела для клиента1 в верхней части поля создания сообщения введите
contosotopics/topic1
раздел для публикации.Создание сообщения. Вы можете использовать любой формат или JSON, как показано ниже.
Нажмите кнопку Send (Отправить).
Сообщение должно быть опубликовано в клиенте 1.
Переключитесь на client2. Убедитесь, что клиент2 получил сообщение.