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


Клиенты MQTT

В этой статье описано, как настроить клиенты и группы клиентов MQTT.

Клиенты

Клиенты могут быть устройствами или приложениями, такими как устройства или транспортные средства, отправляющие и получающие сообщения MQTT.

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

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

Примечание.

  • Имя клиента может иметь длину 1–128 символов.
  • Имя клиента может включать буквенно-цифровые буквы, дефис(-), двоеточие(:), dot(.) и символ подчеркивания(_), без пробелов. Он учитывает регистр и должен быть уникальным для каждого пространства имен.

Ключевые условия метаданных клиента

Имя проверки подлинности клиента. Вы можете указать уникальный идентификатор клиента без ограничений именования Azure Resource Manager. Это обязательное поле, если оно не указано явным образом, оно по умолчанию используется для имени клиента.

В пространстве имен два клиента не могут иметь одно и то же имя проверки подлинности. При проверке подлинности клиента имя проверки подлинности клиента рассматривается как нечувствительное к регистру.

Мы сохраняем исходное имя проверки подлинности клиента, которое вы настраиваете в клиенте. Мы используем исходное имя проверки подлинности клиента (учитывает регистр), предоставленное при создании клиента, в обогащении маршрутизации, сопоставлении пространства разделов и т. д.

Примечание.

  • Имя проверки подлинности клиента может быть длиной 1–128 символов, строками UTf-8, без ограничений
  • Имя проверки подлинности клиента учитывает регистр и должно быть уникальным для каждого пространства имен (регистр игнорируется при определении уникальности).

Схема проверки подлинности сертификата клиента. Чтобы использовать сертификат ЦС для проверки подлинности, можно выбрать один из следующих вариантов, чтобы указать расположение удостоверения клиента в сертификате клиента. Когда клиент пытается подключиться к службе, служба находит клиент из этого поля сертификата и сопоставляет его с именем проверки подлинности клиента для проверки подлинности клиента.

Мы поддерживаем пять полей сертификата:

  • Имя проверки подлинности темы соответствует
  • Dns Соответствует имени проверки подлинности
  • Имя проверки подлинности URI соответствует имени
  • Имя проверки подлинности в IP-адресах
  • Имя проверки подлинности по электронной почте соответствует имени

Используйте параметр "Соответствие отпечаткам" при использовании самозаверяющего сертификата для проверки подлинности клиента.

Примечание.

  • ClientCertificateAuthentication всегда требуется с допустимым значением validateScheme.
  • authenticationName не требуется, но после первого запроса на создание значение authenticatioName по умолчанию используется для имени ARM, а затем его невозможно обновить.
  • имя_проверки подлинности невозможно обновить.
  • Если validationScheme является что-либо, отличное от ThumbprintMatch, то не удается предоставить список разрешенных.
  • Список разрешенных Меток можно указать только в том случае, если проверкаScheme — ThumbprintMatch с одним отпечатком.
  • allowedThumbprints может содержать не более 2 отпечатков.
  • Допустимые значения validationScheme: SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch
  • Использование отпечатка с разрешением повторного использования одного сертификата в нескольких клиентах. Для других типов проверки имя проверки должно находиться в выбранном поле сертификата клиента.

Атрибуты клиента

Атрибуты клиента — это набор определяемых пользователем пар "ключ-значение" или тегов, которые предоставляют сведения о клиенте.

Эти атрибуты клиента можно использовать для создания групп клиентов. Например, можно сгруппировать все транспортные средства типа полу грузовиков в одну группу и все транспортные средства типа пикап-грузовиков в другую.

Эти атрибуты используются в запросах группы клиентов для фильтрации набора клиентов. Атрибуты могут описывать физические или функциональные характеристики клиента. Типичным атрибутом может быть "тип" клиента.

Приведем пример:

  • Тип: значения могут быть "датчик" или "термостат" или "автомобиль"

Ниже приведен пример схемы для клиента с определением атрибута:

{  
    "id": "device123",  
    "attributes": {  
        "type": "home-sensors",
        "sensors": ["motion", "noise", "light"]
     }
}

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

Примечание.

  • Ключи атрибутов клиента должны быть уникальными в клиенте. Ключи не могут повторяться.
  • Значения атрибута клиента могут иметь тип stringinteger или array of strings типы.
  • Общий размер атрибутов клиента для клиента всегда должен быть меньше 4 КБ.
  • Имя атрибута клиента (ключ) может содержать только буквенно-цифровые символы и символы подчеркивания(_).

Примеры контрактов

Пример проверки подлинности клиента на основе цепочки сертификатов

{
    "properties": {
        "authenticationName": "127.0.0.1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "IpMatchesAuthenticationName"
        },
        "attributes": {
            "room": "345",
            "floor": 3,
            "bldg": "17"
        },
        "description": "Description of the client"
    }
}

Пример проверки подлинности клиента на основе самозаверяющего сертификата

{
    "properties": {
        "authenticationName": "abcd@domain.com-1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "ThumbprintMatch",
            "allowedThumbprints": ["primary", "secondary"]
        },
        "attributes": {
            "room": "345",
            "floor": "3",
            "bldg": 17
        },
        "description": "Description of the client"
    }
}

Настройка портала Azure

Чтобы создать клиент, выполните следующие действия.

  1. Перейдите в пространство имен в портал Azure

  2. В разделе "Клиенты" выберите + Client.

    Screenshot of adding a client.

  3. Выберите схему проверки подлинности сертификата клиента. Дополнительные сведения о конфигурации проверки подлинности клиента см . в статье о проверке подлинности клиента.

  • Добавьте атрибуты клиента.

    Screenshot of client configuration.

  1. Нажмите кнопку Создать

Настройка Azure CLI

Используйте следующие команды, чтобы создать или показать или удалить клиент.

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

az eventgrid namespace client create -g myRG --namespace-name myNS -n myClient

Получение клиента

az eventgrid namespace client show -g myRG --namespace-name myNS -n myClient

Удаление клиента

az eventgrid namespace client delete -g myRG --namespace-name myNS -n myClient

Следующие шаги