> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Aprenda a configurar el cumplimiento de FAPI para un inquilino de Auth0.

# Configurar el cumplimiento de FAPI

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Para usar las funciones de Highly Regulated Identity, debe tener un Enterprise Plan con el complemento Highly Regulated Identity. Consulte [Auth0 Pricing](https://auth0.com/pricing/) para obtener más información.
</Callout>

Para ayudar a los clientes a configurar su inquilino de Auth0 de modo que cumpla con uno de los perfiles de Financial-grade API (FAPI), el modelo de aplicación incluye una propiedad `compliance_level` que se puede establecer en uno de cinco valores:

* `null` o 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](/es/docs/get-started/applications/configure-mtls) y [PAR](/es/docs/get-started/applications/configure-par).
* `fapi1_adv_pkj_par`: El cliente quiere que este cliente se comporte de acuerdo con el perfil FAPI1 Advanced mediante [Private Key JWT](/es/docs/get-started/applications/configure-private-key-jwt) y [PAR](/es/docs/get-started/applications/configure-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](/es/docs/get-started/applications/configure-private-key-jwt) y [mTLS Token Sender-Constraining](/es/docs/secure/sender-constraining/mtls-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](/es/docs/get-started/applications/configure-mtls) y [mTLS Token Sender-Constraining](/es/docs/secure/sender-constraining/mtls-sender-constraining).

El cumplimiento de un perfil FAPI requiere varios cambios de configuración. Establecer `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:

```json lines theme={null}
{
  “error”: “invalid_request”,
  "error_description": "Las solicitudes de autorización enviadas son requeridas por el nivel de cumplimiento configurado" 
}
```

En algunos casos, establecer un nivel de cumplimiento también modifica el comportamiento de Auth0. Por ejemplo, los niveles de cumplimiento `fapi1_adv_pkj_par` y `fapi1_adv_mtls_par` hacen que Auth0 incluya un claim `s_hash` en el <Tooltip tip="ID Token: Credencial destinada al propio cliente, en lugar de para acceder a un recurso." cta="Ver glosario" href="/es/docs/glossary?term=ID+token">token de ID</Tooltip> 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                    |

<div id="configure-fapi-compliance-for-a-client">
  ## Configurar el cumplimiento de FAPI para un cliente
</div>

<Tabs>
  <Tab title="Auth0 Dashboard">
    Para hacerlo desde el Auth0 Dashboard:

    1. Vaya a **Auth0 Dashboard > Applications**.
    2. Seleccione la aplicación.
    3. Seleccione la pestaña **configuración de la aplicación**.
    4. Abra la sección **Advanced Settings**.
    5. En la pestaña **OAuth**, seleccione **FAPI Compliance Enforcement Level**.

    Las opciones para configurar el cumplimiento de FAPI son:

    * **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](/es/docs/get-started/applications/configure-private-key-jwt) y [PAR](/es/docs/get-started/applications/configure-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](/es/docs/get-started/applications/configure-mtls) y [PAR](/es/docs/get-started/applications/configure-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](/es/docs/get-started/applications/configure-private-key-jwt) y [mTLS Token Sender-Constraining](/es/docs/secure/sender-constraining/mtls-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](/es/docs/get-started/applications/configure-mtls) y [mTLS Token Sender-Constraining](/es/docs/secure/sender-constraining/mtls-sender-constraining).
  </Tab>

  <Tab title="Management API">
    Use la [Management API](https://auth0.com/docs/api/management/v2) para establecer la propiedad `compliance_level` con una solicitud `POST` o `PATCH`:

    ```bash lines theme={null}
    curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/clients/$client_id' \
      --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
      --header 'Content-Type: application/json' \
      --data '{
        "compliance_level": "fapi1_adv_mtls_par"
    }'
    ```

    Para obtener la propiedad `compliance_level`, use una solicitud `GET`:

    ```bash lines theme={null}
    curl --location 'https://{YOUR_DOMAIN}/api/v2/clients/{YOUR_CLIENT_ID} \
      --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}'
    ```

    Para el cumplimiento de FAPI 2.0, puede configurar el tiempo de expiración de las solicitudes de autorización enviadas con un valor inferior a 600 segundos; el valor predeterminado es 30 segundos. Puede establecer el valor de expiración mediante la Management API.
  </Tab>
</Tabs>

<div id="learn-more">
  ## Más información
</div>

* [Configurar la autenticación con Private Key JWT](/es/docs/get-started/applications/configure-private-key-jwt)
* [Configurar solicitudes de autorización push (PAR)](/es/docs/get-started/applications/configure-par)
* [Configurar la autenticación con mTLS](/es/docs/get-started/applications/configure-mtls)
