Para usar las funciones de Highly Regulated Identity, debe tener un Enterprise Plan con el complemento Highly Regulated Identity. Consulte Auth0 Pricing para obtener más información.
compliance_level que se puede establecer en uno de cinco valores:
nullo undefined: No se requiere ningún nivel de cumplimiento. Este es el valor predeterminado.fapi1_adv_mtls_par: El cliente quiere que este cliente se comporte de acuerdo con el perfil FAPI1 Advanced mediante mTLS y PAR.fapi1_adv_pkj_par: El cliente quiere que este cliente se comporte de acuerdo con el perfil FAPI1 Advanced mediante Private Key JWT y PAR.fapi2_sp_pkj_mtls: El cliente quiere que este cliente se comporte de acuerdo con el perfil de seguridad FAPI 2.0 mediante Private Key JWT y mTLS Token Sender-Constraining.fapi2_sp_mtls_mtls: El cliente quiere que este cliente se comporte de acuerdo con el perfil de seguridad FAPI 2.0 mediante mTLS Client Authentication y mTLS Token Sender-Constraining.
compliance_level garantiza que ninguna solicitud de autorización pueda completarse correctamente a menos que tanto la solicitud como la configuración cumplan con el estándar seleccionado.
Por ejemplo, los niveles de cumplimiento fapi1_adv_pkj_par y fapi1_adv_mtls_par requieren PAR. Si se selecciona cualquiera de estos niveles de cumplimiento, PAR es obligatorio independientemente del valor de la configuración require_pushed_authorization_requests. Intentar una autorización sin usar PAR da como resultado la siguiente respuesta de error:
fapi1_adv_pkj_par y fapi1_adv_mtls_par hacen que Auth0 incluya un claim s_hash en el devuelto, que contiene un hash SHA256 del valor de state. Esto permite que los tokens de ID actúen como una firma desacoplada.
Las siguientes tablas resumen las reglas de validación adicionales y los cambios en el comportamiento de Auth0 que habilita cada nivel de cumplimiento:
| Validación | fapi1_adv_pkj_par | fapi1_adv_mtls_par | fapi2_sp_pkj_mtls | fapi2_sp_mtls_mtls |
|---|---|---|---|---|
Impide el uso de tokens de acceso en los parámetros de consulta de la URL al llamar a /userinfo. En su lugar, los tokens de acceso deben incluirse en el encabezado Authorization. | Y | Y | Y | Y |
| Requiere PAR. | Y | Y | Y | Y |
| Requiere PKCE con el método de desafío S256. | Y | Y | Y | Y |
| Impide el uso de comodines en los callbacks permitidos en un cliente. | Y | Y | N | N |
| Exige el uso de JAR. | Y | Y | N | N |
| Asegura que la carga útil de JAR esté firmada con el algoritmo PS256. | Y | Y | N | N |
Asegura que la carga útil de JAR contenga la claim nbf y que no tenga una antigüedad superior a 60 minutos. | Y | Y | N | N |
Asegura que la carga útil de JAR contenga la claim exp y que no sea posterior en más de 60 minutos a la claim nbf. | Y | Y | N | N |
Asegura que el cliente haya establecido la propiedad oidc_conformant en true. | Y | Y | Y | Y |
Requiere el uso de encabezados x-fapi-* | Y | Y | N | N |
| Requiere el uso de Private Key JWT para la autenticación del cliente. | Y | N | Y | N |
| Requiere el uso de mTLS para la autenticación del cliente. | N | Y | N | Y |
| Tipos de respuesta permitidos. | code id_token | code id_token | code | code |
Requiere que la claim aud coincida exactamente con el emisor en la aserción de Private Key JWT. | N | N/A | Y | N/A |
Requiere el parámetro redirect_uri en las solicitudes de autorización enviadas. | N | N | Y | Y |
| Comportamiento actualizado de Auth0 | fapi1_adv_pkj_par | fapi1_adv_mtls_par | fapi2_sp_pkj_mtls | fapi2_sp_mtls_mtls |
|---|---|---|---|---|
Añade la claim s_hash a los ID tokens. | Y | Y | N | N |
Cuando se solicita el scope profile, la claim update_at contiene una marca de tiempo Unix conforme a OIDC en lugar de una cadena. | Y | Y | Y | Y |
| Devuelve solo códigos de error conformes a OIDC. En algunos casos, Auth0 puede devolver códigos de error adicionales, pero habilitar este nivel de cumplimiento garantiza que Auth0 solo use códigos de error definidos en los estándares de OpenID. | Y | Y | Y | Y |
Devuelve el emisor como parámetro iss en las respuestas de código. | N | N | Y | Y |
| Reduce la vigencia máxima del código de autorización a 60 segundos. | N | N | Y | Y |
Configurar el cumplimiento de FAPI para un cliente
- Auth0 Dashboard
- Management API
Para hacerlo desde el Auth0 Dashboard:
- Vaya a Auth0 Dashboard > Applications.
- Seleccione la aplicación.
- Seleccione la pestaña configuración de la aplicación.
- Abra la sección Advanced Settings.
- En la pestaña OAuth, seleccione FAPI Compliance Enforcement Level.
- None: No se requiere ningún nivel de cumplimiento. Esta es la opción predeterminada.
- FAPI 1 Advanced profile using Private Key JWT and PAR: El cliente quiere que esta aplicación se comporte de acuerdo con el perfil avanzado de FAPI 1 mediante Private Key JWT y PAR.
- FAPI 1 Advanced profile using mTLS and PAR: El cliente quiere que esta aplicación se comporte de acuerdo con el perfil avanzado de FAPI 1 mediante mTLS y PAR.
- FAPI 2.0 Security Profile with Private Key JWT and certificate binding: El cliente quiere que esta aplicación se comporte de acuerdo con el perfil de seguridad de FAPI 2.0 mediante Private Key JWT Client Authentication y mTLS Token Sender-Constraining.
- FAPI 2.0 Security Profile with mTLS and certificate binding: El cliente quiere que esta aplicación se comporte de acuerdo con el perfil de seguridad de FAPI 2.0 mediante mTLS Client Authentication y mTLS Token Sender-Constraining.