Cómo funciona
-
Vinculación de certificados mediante Mutual TLS (mTLS) en la capa de transporte:
- Mecanismo: Cuando la aplicación cliente solicita un token de acceso al Servidor de autorización de Auth0, establece una conexión Mutual TLS (mTLS), en la que tanto la aplicación cliente como el servidor presentan y verifican mutuamente sus certificados X.509.
- Vinculación: El Servidor de autorización de Auth0 incluye una claim de confirmación (
cnf) con la huella digital del certificado de la aplicación cliente directamente en el token de acceso emitido. - Prueba de posesión: Cuando la aplicación cliente usa el token de acceso vinculado a mTLS para acceder a un servidor de recursos, debe volver a establecer una conexión mTLS con el mismo certificado. El servidor de recursos verifica que el certificado presentado por la aplicación cliente coincida con el vinculado al token de acceso. Si no coinciden, el servidor de recursos rechaza la solicitud.
- Ventaja: Incluso si un atacante roba el token de acceso, no podrá usarlo porque no tendrá la clave privada ni el certificado correspondientes necesarios para establecer la conexión mTLS correcta. La restricción del remitente con mTLS suele usarse con clientes confidenciales, como las aplicaciones del lado del servidor, que pueden almacenar y gestionar de forma segura certificados X.509 y sus claves privadas.
-
Demostración de prueba de posesión (DPoP) en la capa de aplicación:
- Mecanismo: DPoP funciona en la capa de aplicación y no requiere mTLS. En su lugar, la aplicación cliente genera su propio par de claves criptográficas (clave privada y clave pública).
- Vinculación: Al solicitar un token de acceso, la aplicación cliente crea un JSON Web Token (JWT) llamado DPoP Proof JWT. Este JWT de prueba contiene la clave pública del cliente y está firmado con su clave privada. La aplicación cliente envía el DPoP Proof JWT junto con la solicitud del token de acceso. El Servidor de autorización de Auth0 valida el DPoP Proof JWT y luego vincula el token de acceso emitido a la clave pública.
- Prueba de posesión: Cuando la aplicación cliente usa el token de acceso vinculado a DPoP para llamar a un servidor de recursos, genera otro DPoP Proof JWT firmado con su clave privada para esa solicitud a la API. La aplicación cliente envía el DPoP Proof JWT en un encabezado junto con el token de acceso. El servidor de recursos verifica que el token de acceso esté vinculado a la clave pública del DPoP Proof JWT y que el propio DPoP Proof JWT haya sido firmado con la clave privada correspondiente mediante una claim de confirmación (
cnf). - Ventaja: DPoP es más flexible que mTLS porque no requiere una infraestructura de clave pública. Puede utilizarse con varios tipos de clientes, incluidos clientes públicos como las SPA y las aplicaciones móviles.
mTLS vs. DPoP
Para obtener más información, consulte Restricción del remitente con mTLS y Demostración de prueba de posesión (DPoP).