Проверка подлинности клиента 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 в сертификате. |