> ## 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.

> Descripción general de cómo configurar la restricción del remitente para tu Tenant de Auth0.

# Configurar la restricción del remitente

[La restricción del remitente](/es/docs/secure/sender-constraining) es un mecanismo de seguridad de <Tooltip tip="OAuth 2.0: Marco de autorización que define protocolos y flujos de trabajo de autorización." cta="Ver glosario" href="/es/docs/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip> y <Tooltip tip="OAuth 2.0: Marco de autorización que define protocolos y flujos de trabajo de autorización." cta="Ver glosario" href="/es/docs/glossary?term=OpenID">OpenID</Tooltip> Connect (OIDC) que vincula criptográficamente los tokens de acceso y los <Tooltip tip="Refresh Token: Token utilizado para obtener un nuevo Token de acceso sin obligar a los usuarios a volver a iniciar sesión." cta="Ver glosario" href="/es/docs/glossary?term=refresh+tokens">tokens de actualización</Tooltip> con la aplicación cliente específica que los obtuvo, lo que evita el robo y el uso indebido de tokens.

Auth0 admite la restricción del remitente con mTLS y Demonstrating Proof-of-Possession (DPoP). Si habilitas la restricción del remitente para una aplicación cliente, también debes exigirla para el <Tooltip tip="Resource Server: Servidor que aloja recursos protegidos. Los servidores de recursos aceptan y responden a solicitudes de recursos protegidos." cta="Ver glosario" href="/es/docs/glossary?term=resource+server">servidor de recursos</Tooltip> al que haces llamadas a la API.

Para configurar la restricción del remitente en Auth0, debes:

* [Configurar la restricción del remitente para una aplicación cliente](#configure-sender-constraining-for-a-client-application)
* [Configurar la restricción del remitente para un servidor de recursos](#configure-sender-constraining-for-a-resource-server)

<div id="how-it-works">
  ## Cómo funciona
</div>

<Tooltip tip="Token de acceso: credencial de autorización, en forma de cadena opaca o JWT, que se utiliza para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=Access+tokens">Tokens de acceso</Tooltip> tienen restricción del remitente en Auth0 en función de cómo configures la restricción del remitente para tu aplicación cliente y tu servidor de recursos:

1. **Audiencia solicitada:** En una solicitud de token, influye en si los tokens de acceso tienen restricción del remitente el hecho de que la audiencia solicitada sea solo `/userinfo`, que esté destinada únicamente a usarse con el endpoint [`/userinfo`](https://auth0.com/docs/api/authentication/user-profile/get-user-info), o que sea una API personalizada que puede incluir `/userinfo` cuando también solicitas el scope `openid`.
2. **Aplicación cliente:** Si estableces la restricción del remitente como `required` para la aplicación cliente.
3. **Servidor de recursos:** Si configuras la restricción del remitente para el servidor de recursos:

   1. `none`: No has configurado la restricción del remitente para el servidor de recursos.
   2. `allowed`: Has configurado la restricción del remitente para el servidor de recursos estableciendo un método de restricción del remitente.
   3. `required`: Has configurado la restricción del remitente como obligatoria para el servidor de recursos, lo que significa que los tokens de acceso deben tener restricción del remitente para una aplicación. Puedes exigir la restricción del remitente para todas las aplicaciones o solo para las aplicaciones públicas. Requiere un método de restricción del remitente.

<Callout icon="lightbulb" color="#0EA5E9" iconType="regular">
  Al usar mTLS como método de restricción del remitente, la restricción del remitente siempre es obligatoria para todas las aplicaciones. Las aplicaciones públicas no son compatibles con mTLS, por lo que no puedes limitar la restricción del remitente con mTLS solo a clientes públicos.
</Callout>

* **Proof-of-Possession:** Si la aplicación cliente envió una aserción de prueba de posesión en la solicitud de token:

  * Restricción del remitente con mTLS: La prueba de posesión se demuestra mediante la presentación satisfactoria por parte del cliente de una clave privada específica (asociada a un certificado de cliente) durante el handshake de TLS.
  * DPoP: La prueba de posesión se logra cuando el cliente crea un JWT de prueba DPoP, lo firma criptográficamente con su clave privada e incluye el JWT de prueba `DPoP` en el encabezado HTTP DPoP de cada solicitud en la que se usa el token de acceso asociado.

La siguiente tabla describe cómo se emiten los tokens de acceso y si tienen restricción del remitente en función de varios parámetros de solicitud del cliente y de las configuraciones del servidor de recursos de Auth0:

| Tipo de audiencia solicitada                      | ¿El cliente requiere PoP? | ¿El cliente envió una prueba de posesión (PoP)? | Política del servidor de recursos de Auth0: None | Política del servidor de recursos de Auth0: Allowed (No obligatoria) | Política del servidor de recursos de Auth0: Required |
| ------------------------------------------------- | ------------------------- | ----------------------------------------------- | ------------------------------------------------ | -------------------------------------------------------------------- | ---------------------------------------------------- |
| Solo Userinfo                                     | No                        | No                                              | Emitido, sin restricción del remitente           | N/A                                                                  | N/A                                                  |
| Solo Userinfo                                     | No                        | Sí                                              | Emitido, con restricción del remitente           | N/A                                                                  | N/A                                                  |
| Solo Userinfo                                     | Sí                        | No                                              | No emitido                                       | N/A                                                                  | N/A                                                  |
| Solo Userinfo                                     | Sí                        | Sí                                              | Emitido, con restricción del remitente           | N/A                                                                  | N/A                                                  |
| Audiencia personalizada (puede contener Userinfo) | No                        | No                                              | Emitido, sin restricción del remitente           | Emitido, sin restricción del remitente                               | No emitido                                           |
| Audiencia personalizada (puede contener Userinfo) | No                        | Sí                                              | Emitido, sin restricción del remitente           | Emitido, con restricción del remitente                               | Emitido, con restricción del remitente               |
| Audiencia personalizada (puede contener Userinfo) | Sí                        | No                                              | No emitido                                       | No emitido                                                           | No emitido                                           |
| Audiencia personalizada (puede contener Userinfo) | Sí                        | Sí                                              | No emitido                                       | Emitido, con restricción del remitente                               | Emitido, con restricción del remitente               |

<div id="configure-sender-constraining-for-a-client-application">
  ## Configurar Sender Constraining para una aplicación cliente
</div>

Cuando exiges Sender Constraining para una aplicación cliente, los tokens de acceso quedan restringidos a esa aplicación. Auth0 verifica las solicitudes para garantizar que solo la aplicación que solicitó el token pueda usarlo para acceder al recurso asociado.

Una vez que configures una aplicación cliente para exigir Sender Constraining, puedes establecer el método de Sender Constraining, ya sea mTLS o DPoP, al configurar tu servidor de recursos.

Puedes configurar Sender Constraining para una aplicación cliente con el <Tooltip tip="Auth0 Dashboard: el producto principal de Auth0 para configurar tus servicios." cta="Ver glosario" href="/es/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> o la <Tooltip tip="Management API: un producto que permite a los clientes realizar tareas administrativas." cta="Ver glosario" href="/es/docs/glossary?term=Management+API">Management API</Tooltip>.

<Tabs>
  <Tab title="Auth0 Dashboard">
    1. Ve a [Dashboard > Applications > Applications](https://manage.auth0.com/#/applications). Selecciona la aplicación que quieres configurar.
    2. En **Settings**, desplázate hasta **Token Sender-Constraining**.
    3. Activa **Require Sender Constraining**. Desactíalo para quitar el requisito de Sender Constraining de la aplicación.

    <Frame>
      <img src="https://mintcdn.com/translations/3nS3prIggmJG9TUI/docs/images/cdy7uua7fh8z/3BoGW9NEYKPBkfk2tPBL7l/0f884ac3f64f17b23fd6a0e9436bb472/Screenshot_2024-07-23_at_1.30.19_PM.png?fit=max&auto=format&n=3nS3prIggmJG9TUI&q=85&s=085696f753798fd16adf27de995d4b93" alt="" width="1900" height="380" data-path="docs/images/cdy7uua7fh8z/3BoGW9NEYKPBkfk2tPBL7l/0f884ac3f64f17b23fd6a0e9436bb472/Screenshot_2024-07-23_at_1.30.19_PM.png" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Para configurar un cliente para Sender Constraining, usa la [Management API](https://auth0.com/docs/api/management/v2).

    Para exigir Sender Constraining para un cliente, envía una solicitud PATCH para [actualizar la configuración del cliente](https://auth0.com/docs/api/management/v2/clients/patch-clients-by-id). Establece el parámetro `require_proof_of_possession` en `true`.

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/clients/{YOUR_CLIENT_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{"require_proof_of_possession": true}'
    ```

    Para quitar el requisito de Sender Constraining, establece el parámetro `require_proof_of_possession` en `false`.

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/clients/{YOUR_CLIENT_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{"require_proof_of_possession": false}'
    ```
  </Tab>
</Tabs>

<div id="configure-sender-constraining-for-a-resource-server">
  ## Configurar la restricción del remitente para un servidor de recursos
</div>

Los tokens de acceso emitidos por Auth0 pueden quedar restringidos al remitente (es decir, la aplicación cliente) que necesita acceder a las API de un servidor de recursos.

Puede configurar la restricción del remitente para un servidor de recursos con el Auth0 Dashboard o la Management API.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Para habilitar Token Binding o Sender Constraining, configure **API Settings** de su API.

    1. Vaya a [Auth0 Dashboard > Applications > APIs](https://manage.auth0.com/#/apis).
    2. Seleccione la API que desea configurar.
    3. En la pestaña **Settings**, busque la sección **Token Sender-Constraining**.
    4. Configure lo siguiente:

       1. Método de Sender Constraining:

          1. **None:** No habilite ningún método de Sender Constraining para su servidor de recursos.
          2. **mTLS**: Habilite mTLS como método de Sender Constraining para su servidor de recursos.
          3. **DPoP:** Habilite DPoP como método de Sender Constraining para su servidor de recursos.

       2. Require Token Sender Constraining: Seleccione qué política de Sender Constraining se aplica a esta API:

          1. **Always:** Requiera Sender Constraining para todas las aplicaciones. Esta es la única opción disponible al usar mTLS.
          2. **For Public Applications:** Requiera Sender Constraining solo para aplicaciones públicas. Esta opción no está disponible al usar mTLS.
          3. **Never:** No se requiere Sender Constraining.

    <Frame>
      <img src="https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=b7f76413d34c6af23036226aba453787" alt="Auth0 Dashboard > APIs > Settings > Vinculación de tokens" data-og-width="1970" width="1970" data-og-height="1276" height="1276" data-path="docs/images/sender-constraining/method_is_dpop.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=280&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=6f4f79010529a5842bc2c54368743d93 280w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=560&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=759304503a591f4032c5413610b0430d 560w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=840&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=e8aef6f46f6eb115439c4828a9f45e74 840w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=1100&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=9d3c782898c0bd7a14e563cfca6c5d27 1100w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=1650&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=f15270df1d77f18635b3e91e92613d46 1650w, https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/sender-constraining/method_is_dpop.png?w=2500&fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=3c1d533e4a62015cfd7f768121a56a39 2500w" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Para habilitar Sender Constraining con la Management API, envíe una solicitud PATCH para [actualizar el servidor de recursos](https://auth0.com/docs/api/management/v2/resource-servers/patch-resource-servers-by-id). Establezca los parámetros del objeto `proof_of_possession` de la siguiente manera:

    | Parámetro      | Descripción                                                                                                                                                                                                                                                                                                 |
    | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `mechanism`    | Establece el método de Sender Constraining: `none`, `mtls` o `dpop`.                                                                                                                                                                                                                                        |
    | `required`     | Obligatorio. Cuando se establece en `true`, los tokens de acceso emitidos a una aplicación para esta API estarán restringidos a esa aplicación. Use `required_for` para especificar a qué tipos de aplicación se aplica este requisito. Cuando se establece en `false`, no se requiere Sender Constraining. |
    | `required_for` | Filtra qué tipos de aplicación requieren Sender Constraining cuando `required` es `true`: `all_clients` (todas las aplicaciones) o `public_clients` (solo aplicaciones públicas). El valor predeterminado es `all_clients` si no se especifica. Al usar mTLS, solo `all_clients` es válido.                 |

    La siguiente muestra de código es un ejemplo de cuerpo de solicitud que configura un servidor de recursos para Sender Constraining con mTLS. Como mTLS solo admite `all_clients` para `required_for` (que es el valor predeterminado), no es necesario especificarlo:

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/resource-servers/{YOUR_RESOURCE_SERVER_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
      "proof_of_possession": {
        "mechanism": "mtls",
        "required": true
      }
    }'
    ```

    La siguiente muestra de código es un ejemplo de cuerpo de solicitud que configura un servidor de recursos para Sender Constraining con DPoP, requerido solo para aplicaciones públicas:

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/resource-servers/{YOUR_RESOURCE_SERVER_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
      "proof_of_possession": {
        "mechanism": "dpop",
        "required": true,
        "required_for": "public_clients"
      }
    }'
    ```

    La siguiente muestra de código configura Sender Constraining con DPoP como obligatorio para todas las aplicaciones. Como `all_clients` es el valor predeterminado, `required_for` puede omitirse:

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/resource-servers/{YOUR_RESOURCE_SERVER_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
      "proof_of_possession": {
        "mechanism": "dpop",
        "required": true
      }
    }'
    ```

    La siguiente muestra de código deshabilita Sender Constraining para un servidor de recursos (equivalente a seleccionar "Never" en el Dashboard):

    ```bash lines theme={null}
    curl -L -X PATCH 'https://{YOUR_DOMAIN}/api/v2/resource-servers/{YOUR_RESOURCE_SERVER_ID}' \
    -H 'Authorization: Bearer {YOUR_MANAGEMENT_API_TOKEN}' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
      "proof_of_possession": null 
    }'
    ```
  </Tab>
</Tabs>
