- Un mayor riesgo de interceptación y reutilización, ya que los secretos del cliente deben transmitirse entre las partes en cada solicitud.
- Mecanismos limitados para aplicar la expiración y evitar la reutilización por parte de actores maliciosos.
- Un mayor riesgo de filtraciones o exposición debido a que ambas partes conservan el secreto del cliente.
Cómo funciona
/oauth/token o /oauth/par, para verificar la identidad de un cliente ante el o proveedor de OpenID. Con Private Key JWT Client Authentication, se envía una aserción JWT del cliente firmada al proveedor de OpenID en lugar de un secreto del cliente.
La aserción JWT del cliente contiene los siguientes claims:
- Un
aud() que identifica el del proveedor de OpenID. - Un
jti(ID de JWT) para permitir el uso único o la protección contra repeticiones. - Un
exp(hora de expiración) que limita la ventana de validez del token. - Un
subeissque identifican el .
Flujo de autenticación de cliente con JWT de clave privada

Para completar este flujo, primero debe configurar una conexión OIDC u Okta Workforce, nueva o existente, con
token_endpoint_auth_method=private_key_jwt mediante Auth0 Dashboard o la Management API. Para obtener más información, consulte la sección Configurar la autenticación de cliente con JWT de clave privada.-
Después de configurar su conexión, Auth0 genera y almacena automáticamente dos pares de claves públicas y privadas.
- Un par de claves corresponde al conjunto activo
current, mientras que el otro se etiqueta comonextpara admitir la rotación de claves.
- Un par de claves corresponde al conjunto activo
-
Según su IdP, a continuación debe hacer una de estas acciones:
- Descargar la clave pública
currenty cargar el archivo en el Servidor de autorización, o bien: - Copiar y pegar el
jwks_urien el Servidor de autorización.
- Descargar la clave pública
- Un usuario realiza una acción que requiere autenticación, como iniciar sesión en su aplicación.
- Auth0 envía una solicitud al Servidor de autorización para iniciar la autenticación.
- El Servidor de autorización muestra al usuario las pantallas de autenticación y consentimiento.
- El usuario se autentica y otorga su consentimiento al Servidor de autorización.
- El Servidor de autorización envía un código de autorización a Auth0.
-
Auth0 genera un JWT de aserción de cliente y lo firma con la clave privada
current. - Auth0 envía el JWT de aserción de cliente al Servidor de autorización.
-
El Servidor de autorización busca el cliente en función del
client_idproporcionado. -
El Servidor de autorización recupera las claves públicas de Auth0 si se proporcionó un
jwks_uri; de lo contrario, identifica la clave pública registrada en el paso 2. -
Si se solicitó el
jwks_uri, Auth0 devuelve las claves públicas como JWKS. -
El Servidor de autorización valida el JWT verificando la firma con la clave pública
current, identificada porkiden el encabezado del JWTclient_assertion. - El Servidor de autorización genera un token de acceso.
- El Servidor de autorización envía el token de acceso a Auth0.
- Con el token de acceso, Auth0 solicita un recurso al Servidor de recursos.
- El Servidor de recursos proporciona el recurso para completar el flujo.
Configurar la autenticación de cliente con JWT de clave privada
- Auth0 genera automáticamente pares de claves de firma públicas y privadas para cada conexión.
- Puede usar los siguientes algoritmos para firmar JWT de aserción de cliente:
RS256,RS384,RS512,PS256,PS384,ES256yES384para las conexiones empresariales de Okta y OIDC. El valor predeterminado esRS256si no se especifica. - Los JWT firmados vencen automáticamente después de 60 segundos.
Auth0 Dashboard
- Nueva conexión
- Conexión existente
- En Auth0 Dashboard, vaya a Authentication > Enterprise.
- Junto a OpenID Connect u Okta Workforce, seleccione Create.
- En la sección General, proporcione los datos de la nueva conexión, incluidos su nombre y la URL de detección.
-
Configure los siguientes campos para habilitar Private Key JWT:
- Establezca Communication Channel en Back Channel.
- Establezca Authentication Method en Private Key JWT.
- Seleccione Create para guardar la nueva conexión.
Management API
- Nueva conexión
- Conexión existente
Para crear una nueva conexión OIDC que use autenticación de cliente con JWT de clave privada, llame al endpoint Create a Connection con las siguientes propiedades de
Ejemplo de llamada POST
connection.options establecidas según corresponda:| Propiedad | Descripción |
|---|---|
type | Establezca esta propiedad en back_channel. |
token_endpoint_auth_method | Método de autenticación usado en el endpoint de token del proveedor de identidad. Establézcalo en private_key_jwt para usar una aserción JWT firmada y mejorar la seguridad, o en client_secret_post para enviar credenciales en el cuerpo de la solicitud. El valor predeterminado es client_secret_post. Se aplica solo a las estrategias oidc y okta. |
token_endpoint_auth_signing_alg | Opcional. Algoritmo usado para firmar aserciones de cliente. Valores aceptados: RS256, RS384, RS512, PS256, PS384, ES256, ES384. El valor predeterminado es RS256 si no se establece. Se aplica solo a las estrategias oidc y okta. |
id_token_signed_response_algs | Opcional. Lista de algoritmos permitidos para verificar los tokens de ID emitidos por el proveedor de identidad. Cuando se establece, Auth0 rechaza los tokens de ID firmados con cualquier algoritmo que no esté en esta lista. Valores aceptados: RS256, RS384, RS512, PS256, PS384, ES256, ES384. Si no se establece, Auth0 acepta tokens de ID firmados con cualquier algoritmo compatible. Se aplica solo a las estrategias oidc y okta. |
token_endpoint_jwtca_aud_format | Opcional. Especifica el formato del claim aud (audiencia) en el JWT usado para la autenticación del cliente en el endpoint de token. Establézcalo en issuer para usar la URL del emisor de OIDC, o en token_endpoint para usar la URL del endpoint de token. El valor predeterminado es token_endpoint. |
Recuperar claves de firma
Auth0 Dashboard
Auth0 Dashboard
Para recuperar las claves de firma a través del Auth0 Dashboard:
- Vaya a Authentication > Enterprise.
- Junto a OpenID Connect u Okta Workforce, seleccione Browse.
- Elija la conexión correspondiente. Luego, abra la pestaña Credentials.
- Busque la sección Credentials y seleccione el icono Download junto a la clave de firma correspondiente.
Management API
Management API
Para ver las claves públicas a través de la Management API, llame al endpoint Get connection keys con el id de su conexión.Ejemplo de llamada GETEjemplo de respuesta
URI pública de JWKS
URI pública de JWKS
Algunos Proveedores de identidad permiten proporcionar claves públicas para private_key_jwt en forma de una URI pública de JWKS (JSON Web Key Set).Si se han generado claves públicas para una conexión, puede recuperarlas agregando la siguiente URI a la configuración de su IdP:
Rotación de claves de firma
Auth0 Dashboard
Auth0 Dashboard
Para rotar sus claves de firma desde el Auth0 Dashboard:
- Vaya a Authentication > Enterprise.
- Junto a OpenID Connect u Okta Workforce, seleccione Browse.
- Elija la conexión correspondiente. Después, abra la pestaña Credentials.
- En la sección Credentials, seleccione Rotate Keys.
- En la ventana emergente, seleccione Save para confirmar la rotación.
Management API
Management API
Para ver las claves públicas mediante la Management API, llame al endpoint Rotate Connection Signing Keys con el ID de su conexión.Después de la rotación, cualquier JWT en tránsito firmado con la clave anterior queda inactivo de inmediato y puede no superar la verificación con su IdP.
Comprender la rotación de claves
En su conexión OIDC u Okta Workforce, sus claves de firma tienen asignado uno de los siguientes estados:
- Current: La clave de firma que la aplicación usa actualmente.
- Next: La siguiente clave de firma que usará la aplicación una vez que se revoque la clave actual.
- Previous: Una clave de firma vencida o revocada por algún otro motivo que ya no se usa.
current y next. Una clave solo se marca como previous después de que se produce una rotación.Al rotar las claves de firma, se producen los siguientes cambios:- La clave
currentse elimina y se revoca, y cualquier JWT firmado con esta clave no superará la verificación con el IdP si el IdP se configuró conjwks_uri. - A la clave
currentse le asigna el estadoprevious. - La clave
nextpasa a ser la clave activa y recibe el estadocurrent. A partir de ese momento, los JWT de aserción de cliente se firmarán con esta clave. - Se genera automáticamente una nueva clave de firma para reemplazar la clave rotada. La nueva clave de firma recibe el estado
next.