Saltar al contenido principal
Las aplicaciones confidenciales, a diferencia de las aplicaciones públicas, pueden almacenar credenciales de forma segura. Cuando las aplicaciones confidenciales solicitan acceso o en el endpoint de token, la aplicación debe autenticarse con el . Durante esta solicitud de tokens, la aplicación proporciona credenciales que posee. Además, las credenciales de la aplicación también pueden ofrecer protección de autenticidad e integridad para los parámetros de solicitud enviados al endpoint /authorize. Para obtener más información sobre las aplicaciones confidenciales y las aplicaciones públicas, lea Aplicaciones confidenciales y públicas.

Métodos de autenticación de aplicaciones

Para obtener tokens de Auth0, su aplicación debe autenticarse mediante la Authentication API. Auth0 admite las siguientes formas de autenticación para su aplicación:
  • : Un método de autenticación simétrico. En la autenticación mediante Secreto del cliente, usa el Secreto del cliente que Auth0 generó cuando creó la aplicación.
  • Private Key : Un método de autenticación asimétrico. En Private Key JWT, genera un par de claves, una pública y una privada, para usarlas como credenciales. Proporciona la clave pública y almacena de forma segura la clave privada en sus propios sistemas, sin compartirla con Auth0.
  • mTLS para : Un método de autenticación asimétrico. En mTLS para OAuth, registra un certificado de cliente X.509 estándar en Auth0. Luego, usa la clave privada correspondiente para establecer de forma segura el túnel mTLS y enviar solicitudes a los endpoints de su inquilino de Auth0.

Autenticación con Secreto del cliente

La autenticación con Secreto del cliente es un método de autenticación simétrico incluido en la especificación de OAuth 2.0. La autenticación con Secreto del cliente es el método de autenticación predeterminado en Auth0. Este método de autenticación es compatible con todas las aplicaciones y herramientas existentes. El Secreto del cliente es un valor de alta entropía que Auth0 genera cuando usted crea una aplicación y que conocen tanto su aplicación como Auth0. Su aplicación se autentica incluyendo el Secreto del cliente en la solicitud al servidor de autorización. El uso del Secreto del cliente como credencial conlleva algunos riesgos de seguridad, especialmente en escenarios con mayores exigencias de seguridad:
  • El secreto que utiliza la aplicación se comparte con Auth0.
  • El secreto se envía a través de la red y podría ser interceptado en caso de un ataque de tipo man-in-the-middle.
Para mejorar su postura de seguridad, le recomendamos usar el método de autenticación Private Key JWT.
Una aplicación puede tener un único Secreto del cliente. No es posible rotar el secreto mientras actualiza su implementación con el nuevo secreto. Para obtener más información, lea Rotar Secretos del cliente.

Autenticación con Private Key JWT

Private Key JWT está disponible para clientes del plan Enterprise. Para cambiar de plan, contacta con precios de Auth0.
La autenticación con Private Key JWT es un método de autenticación asimétrica que se basa en pares de claves públicas y privadas. Para obtener más información, lee JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants. Puedes usar el o la Auth0 para configurar un inquilino para que use Private Key JWT. Para obtener más información, lee Configurar la autenticación con Private Key JWT. En Private Key JWT, una solicitud al servidor de autorización consta de dos pasos principales:
  1. Configura las claves públicas y privadas:
    1. Genera un par de claves (una clave pública y una clave privada).
    2. Registra la clave privada en la aplicación que realiza la solicitud de autenticación y registra la clave pública en el proveedor de identidad (IdP).
  2. Crea aserciones para las solicitudes al servidor de autorización:
    1. Crea una nueva aserción con los claims especificados en formato JWT y fírmala con la clave privada. Incluye esta aserción como parte de la solicitud al IdP.
    2. El IdP valida la aserción mediante la clave pública.
Para configurar Private Key JWT para Auth0, lee Configurar la autenticación con Private Key JWT. Para obtener más información sobre cómo crear una aserción para Private Key JWT, lee Autenticación con Private Key JWT. El uso de Private Key JWT ofrece algunas ventajas de seguridad:
  • La clave privada no se transmite por la red, lo que reduce el riesgo de exposición de las credenciales de tu aplicación. Los como Auth0 no conocen la clave privada, y solo las aplicaciones que tienen acceso a ella pueden crear solicitudes de autenticación.
  • Las aserciones firmadas tienen un tiempo de expiración corto, lo que limita la ventana de oportunidad para ataques de repetición.

mTLS para OAuth

Para usar las funcionalidades de Highly Regulated Identity, debe tener un Enterprise Plan con el complemento Highly Regulated Identity. Consulte Auth0 Pricing para obtener más información.
mTLS para OAuth autentica las solicitudes al Servidor de autorización mediante TLS mutuo basado en certificados autofirmados o infraestructura de clave pública (PKI). Lea Autenticación con mTLS para obtener más información sobre cómo funciona la autenticación con mTLS en Auth0. La funcionalidad de mTLS para OAuth de Auth0 está orientada inicialmente a clientes de sectores altamente regulados, como finanzas y salud, que probablemente ya cuenten con implementaciones de mTLS. Para simplificar la adopción por parte de los clientes, la funcionalidad de mTLS se basa en dominios personalizados y aprovecha la infraestructura de mTLS existente del cliente para aprovisionar y verificar certificados. Para obtener más información sobre la autenticación con mTLS y la configuración de su red perimetral, lea Autenticación con mTLS y Configurar su customer edge.
Puede configurar alias de endpoints de mTLS para usar un subdominio específico para mTLS para OAuth.
Para saber cómo configurar mTLS, lea Configurar la autenticación con mTLS. Una vez que haya configurado su red perimetral y mTLS, su aplicación debe establecer el túnel mTLS para enviar solicitudes a Auth0, como se explica en Llamar al Servidor de autorización. En mTLS, la clave privada del certificado del cliente no se transmite por la red, lo que reduce el riesgo de exponer las credenciales de su aplicación. Los Proveedores de identidad como Auth0 no tienen acceso a la clave privada. Solo las aplicaciones que tienen acceso a la clave privada pueden autenticarse.
mTLS también admite Sender Constraining o Token Binding para proteger los tokens de acceso frente a atacantes. Para obtener más información, lea Configurar Sender Constraining. Token Binding no requiere credenciales de aplicación registradas previamente, como un certificado de cliente, para usarse con mTLS.

Solicitud de autorización protegida con JWT (JAR)

Para usar las funciones de Highly Regulated Identity, debe tener un plan Enterprise con el complemento Highly Regulated Identity. Consulte Auth0 Pricing para obtener más información.
JWT-Secured Authorization Request (JAR) es una extensión del protocolo OAuth2 que mejora la seguridad de las solicitudes de autorización. Para ello, utiliza un parámetro de solicitud JSON Web Token (JWT) para proteger la integridad y la confidencialidad de los parámetros de la solicitud de autorización. Puede usar la Auth0 Management API para configurar JAR en su aplicación. La implementación de Auth0 para JAR utiliza criptografía asimétrica: usted registra la clave pública mientras almacena de forma segura la clave privada en su entorno. Para obtener más información, lea Configure JWT-Secured Authorization Requests. Al usar JAR, el cliente crea un JWT que incluye los parámetros de la solicitud de autorización, lo firma con su clave privada y lo envía al servidor de autorización. Luego, el servidor de autorización verifica la firma con la clave pública del cliente y, si la firma es válida, extrae del JWT los parámetros de la solicitud de autorización y procesa la solicitud como de costumbre. Para obtener más información sobre cómo usar JAR, lea Authorization Code Flow with JWT-Secured Authorization Requests (JAR).

Registro de claves y certificados

Debe generar un par de claves distinto para cada tipo de uso de credenciales. Por ejemplo, no reutilice los mismos pares de claves para JAR y la autenticación con Private Key JWT.
Puede registrar dos claves públicas para una aplicación al mismo tiempo. Auth0 se encarga de verificar con la clave adecuada y le permite rotarlas sin tiempo de inactividad. Una vez que se haya eliminado o desactivado la clave antigua, se invalidarán todas las solicitudes firmadas con la clave privada correspondiente. Nota: Auth0 admite los siguientes algoritmos para la autenticación de aplicaciones y la firma de solicitudes de autorización: RS256, RS384 y PS256. Asegúrese de proporcionar las claves adecuadas para cada uno. Para obtener más información, consulte Configure Private JWT Authentication y Configure JWT-Secured Authorization Requests. Del mismo modo, para los certificados de cliente mTLS, puede registrar al mismo tiempo dos certificados X.509 de cliente (autofirmados o con el DN del sujeto del certificado de la CA) para una aplicación. Auth0 se encarga de verificar con ambos certificados de cliente, lo que le permite rotar certificados sin tiempo de inactividad.

Actualizar el método de autenticación de la aplicación

Puede actualizar el método de autenticación de una aplicación en el Auth0 Dashboard. Para obtener más información, consulte Configuración de credenciales.

Más información