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.
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.
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.
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.
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
- Obtenga información sobre cómo autenticar clientes mediante la cadena de certificados
- Obtenga información sobre cómo autenticar el cliente mediante el token de Microsoft Entra ID