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


Проверка подлинности клиента MQTT с помощью сертификатов

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

Поддерживаемые режимы проверки подлинности:

  • Сертификаты, выданные центром сертификации (ЦС)
  • Самозаверяющий сертификат клиента — отпечаток
  • Токен идентификатора Microsoft Entra

В этой статье рассматриваются сертификаты. Сведения о проверке подлинности с помощью маркеров идентификатора Microsoft Entra см. в статье аутентификации клиента с помощью маркера идентификатора Microsoft Entra.

Подписанные сертификаты центра сертификации (ЦС)

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

Внимание

  • Убедитесь, что необходимо отправить корневой или промежуточный сертификат, используемый для подписи сертификата клиента. Для отправки всей цепочки сертификатов не требуется.
  • Например, если у вас есть цепочка корневых, промежуточных и конечных сертификатов, убедитесь, что необходимо передать промежуточный сертификат, подписанный конечными или клиентскими сертификатами.

Снимок экрана: страница сертификатов ЦС с корневыми и промежуточными сертификатами, используемыми для подписывания сертификатов клиента.

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

Снимок экрана: метаданные клиента с пятью схемами проверки на основе цепочки сертификатов.

Самозаверяющий сертификат клиента — отпечаток

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

Снимок экрана: метаданные клиента с схемой проверки подлинности отпечатка.

Примечание.

  • Рекомендуется включить имя проверки подлинности клиента в поле имени пользователя пакета подключения клиента. Используя это имя проверки подлинности вместе с сертификатом клиента, служба сможет пройти проверку подлинности клиента.
  • Если имя проверки подлинности не указано в поле имени пользователя, необходимо настроить альтернативные исходные поля для имени проверки подлинности клиента в область пространства имен. Служба ищет имя проверки подлинности клиента в соответствующем поле сертификата клиента для проверки подлинности подключения клиента.

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

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

Порядок выбора полей сертификата клиента на странице конфигурации пространства имен важен. Служба ищет имя проверки подлинности клиента в полях сертификата клиента в том же порядке.

Например, если сначала выбрать параметр DNS сертификата, а затем параметр "Имя субъекта" во время проверки подлинности клиентского подключения,

  • служба проверка поле DNS альтернативного имени субъекта сертификата клиента сначала для имени проверки подлинности клиента
  • Если поле DNS пусто, служба проверка поле "Имя субъекта" сертификата клиента
  • Если имя проверки подлинности клиента отсутствует в обоих из этих двух полей, подключение клиента запрещено.

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

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

Для предоставления имени проверки подлинности клиента в сертификате клиента можно использовать одно из следующих полей.

Параметр источника имени проверки подлинности Поле сертификата Description
Имя субъекта сертификата tls_client_auth_subject_dn Различающееся имя субъекта сертификата.
Dns сертификата tls_client_auth_san_dns dNSName Запись SAN в сертификате.
Uri сертификата tls_client_auth_san_uri uniformResourceIdentifier Запись SAN в сертификате.
Ip-адрес сертификата tls_client_auth_san_ip IPv4 или IPv6-адрес, присутствующий в записи SAN iPAddress в сертификате.
Электронная почта сертификата tls_client_auth_san_email rfc822Name Запись SAN в сертификате.

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