Para usar las funcionalidades de Highly Regulated Identity, debe contar con un plan Enterprise con el complemento de Highly Regulated Identity. Consulte Auth0 Pricing para más información.
Requisitos previos
- Generar un par de claves RSA
- Registrar la clave pública subiéndola al Auth0 Dashboard, como se describe en Configurar solicitudes de autorización protegidas con JWT
Cómo funciona
scope o redirect_uri como texto sin formato en una URL, la aplicación cliente los incluye en un JSON Web Token (JWT) firmado como objeto de solicitud:
- Firma: La aplicación cliente firma el JWT con su clave privada.
- Verificación: El Servidor de autorización de Auth0 recibe el JWT y verifica la firma con la clave pública que registró.
- Procesamiento: Si es válido, el Servidor de autorización de Auth0 extrae los parámetros. Si un parámetro existe tanto en el JAR como en la cadena de consulta, el valor incluido en el JAR prevalece.
Generar la solicitud JAR
Encabezado
alg: El algoritmo utilizado para firmar el JWT. Debe ser RS256, RS384 o PS256.typ: El tipo de JWT. Debe serjwtooauth-authz-req+jwt.
kid que identifica la clave utilizada para firmar el JWT. Si hay un kid, Auth0 buscará una clave pública registrada durante la configuración de JAR cuyo ID de clave coincida y usará esa clave para verificar la firma del JWT.
Carga útil
iss: Debe contener elclient_idde tu aplicación.aud: Debe ser el dominio de tu inquilino, con el protocolo y una barra diagonal final. Por ejemplo,https://{YOUR_DOMAIN}.auth0.com/
/authorize. Por ejemplo:
client_id: También debe contener elclient_idde tu aplicación.response_type: Indica a Auth0 qué flujo quieres ejecutar. Usacodepara Authorization Code Grant Flow.
audience, scope, state, redirect_uri, entre otros.
Además, el JWT puede contener los siguientes claims opcionales:
iat: Debe ser una fecha numérica.nbf: Debe ser una fecha numérica que represente un momento en el pasado.exp: Debe ser una fecha numérica que represente un momento en el futuro.jti: Debe ser una cadena de no más de 64 bytes.
Ejemplo de código: Generar y firmar un JAR
- Solicitud JAR estándar: Pasa el JWT firmado como una cadena con codificación URL en el parámetro de solicitud.
- Pushed Authorization Request: Para reforzar la seguridad y evitar las restricciones de longitud de la URL, usa PAR.
Solicitud JAR estándar
/authorize con una solicitud JAR estándar:
- Abra una nueva ventana del navegador.
- Pase su como parámetro
client_idy el JWT firmado y codificado para URL como parámetrorequest.
/authorize con una Pushed Authorization Request:
- Envíe el JAR al endpoint
/oauth/parmediante una solicitudPOSTpor canal secundario. - Auth0 devolverá un
request_uri, que luego podrá usar para llamar al endpoint/authorize, como en un flujo PAR normal.