Compartir vía


Autenticación de cliente MQTT mediante certificados

El agente MQTT de Azure Event Grid admite la autenticación de clientes mediante certificados X.509. El certificado X.509 proporciona las credenciales para asociar un cliente determinado al inquilino. En este modelo, la autenticación suele producirse una vez durante el establecimiento de la sesión. Posteriormente, se supone que todas las operaciones futuras que usan la misma sesión proceden de esa identidad.

Los modos de autenticación admitidos son:

  • Certificados emitidos por una entidad de certificación (CA)
  • Certificado de cliente autofirmado: huella digital
  • Token de Microsoft Entra ID

Este artículo se centra en los certificados. Para obtener información sobre la autenticación con tokens de Microsoft Entra ID, vea Autenticación del cliente mediante tokens de Microsoft Entra ID.

Certificados firmados por la entidad de certificación (CA)

En este método, se registra un certificado X.509 raíz o intermedio con el servicio. Básicamente, el certificado raíz o intermedio que se usa para firmar el certificado de cliente debe registrarse primero con el servicio.

Importante

  • Asegúrese de cargar el certificado raíz o intermedio que se usa para firmar el certificado de cliente. No es necesario cargar toda la cadena de certificados.
  • Por ejemplo, si tiene una cadena de certificados raíz, intermedios y de hoja, asegúrese de cargar el certificado intermedio que firmó los certificados de hoja o de cliente.

Captura de pantalla que muestra la página de certificados de CA con los certificados raíz e intermedio que se utilizan para firmar los certificados de cliente.

Al registrar clientes, debe identificar el campo de certificado que se usa para contener el nombre de autenticación del cliente. El servicio empareja el nombre de autenticación del certificado con el nombre de autenticación del cliente en los metadatos del cliente para validarlo. El servicio también valida el certificado de cliente comprobando si está firmado por el certificado raíz o intermedio registrado anteriormente.

Captura de pantalla que muestra los metadatos del cliente con los cinco esquemas de validación basados en cadenas de certificados.

Certificado de cliente autofirmado: huella digital

En este método de autenticación, el registro de cliente almacena la huella digital exacta del certificado que el cliente va a usar para autenticarse. Cuando el cliente intenta conectarse al servicio, el servicio valida el cliente comparando la huella digital presentada en el certificado de cliente con la huella digital almacenada en los metadatos del cliente.

Captura de pantalla que muestra los metadatos del cliente con el esquema de autenticación de huella digital.

Nota:

  • Se recomienda incluir el nombre de autenticación del cliente en el campo de nombre de usuario del paquete de conexión del cliente. Con este nombre de autenticación junto con el certificado de cliente, el servicio podrá autenticar al cliente.
  • Si no proporciona el nombre de autenticación en el campo de nombre de usuario, debe configurar los campos de origen alternativos para el nombre de autenticación de cliente en el ámbito del espacio de nombres. El servicio busca el nombre de autenticación de cliente en el campo correspondiente del certificado de cliente para autenticar la conexión de cliente.

En la página de configuración en el ámbito del espacio de nombres, puede habilitar orígenes de nombres de autenticación de cliente alternativos y, a continuación, seleccionar los campos de certificado de cliente que tienen el nombre de autenticación de cliente.

Captura de pantalla que muestra la página de configuración del espacio de nombres con la configuración del origen alternativo del nombre de autenticación del cliente.

El orden de selección de los campos del certificado de cliente en la página de configuración del espacio de nombres es importante. El servicio busca el nombre de autenticación de cliente en los campos de certificado de cliente en el mismo orden.

Por ejemplo, si selecciona primero la opción DNS de certificado y, a continuación, la opción Nombre del firmante, al autenticar la conexión de cliente,

  • el servicio comprueba primero el campo DNS del nombre alternativo del firmante del certificado de cliente para el nombre de autenticación del cliente
  • si el campo DNS está vacío, el servicio comprueba el campo Nombre del firmante del certificado de cliente
  • si el nombre de autenticación de cliente no está presente en ninguno de estos dos campos, se deniega la conexión de cliente

En ambos modos de autenticación de cliente, esperamos que el nombre de autenticación de cliente se proporcione en el campo de nombre de usuario del paquete de conexión o en uno de los campos de certificado de cliente.

Campos de certificado de cliente admitidos para un origen alternativo del nombre de autenticación de cliente

Puede usar uno de los campos siguientes para proporcionar el nombre de autenticación de cliente en el certificado de cliente.

Opción de origen de nombre de autenticación Campo del certificado Descripción
Nombre del sujeto de certificados tls_client_auth_subject_dn Nombre distintivo del sujeto del certificado.
DNS del certificado tls_client_auth_san_dns Entrada SAN dNSName en el certificado.
URI del certificado tls_client_auth_san_uri Entrada SAN uniformResourceIdentifier en el certificado.
IP del certificado tls_client_auth_san_ip La dirección IPv4 o IPv6 presente en la entrada SAN iPAddress en el certificado.
Email del certificado tls_client_auth_san_email Entrada SAN rfc822Name en el certificado.

Pasos siguientes