> ## 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 usar solicitudes de autorización push (PAR) con el Flujo de código de autorización.

# Flujo de código de autorización con solicitudes de autorización push (PAR)

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

[Pushed Authorization Request (PAR)](https://datatracker.ietf.org/doc/html/rfc9126) es un protocolo de backend para enviar solicitudes de autorización directamente al <Tooltip tip="Servidor de autorización: servidor centralizado que ayuda a definir los límites del acceso de un usuario. Por ejemplo, su servidor de autorización puede controlar los datos, las tareas y las funciones disponibles para un usuario." cta="Ver glosario" href="/es/docs/glossary?term=authorization+server">Servidor de autorización</Tooltip>. Es un componente técnico del [Financial-Grade API (FAPI) Security Profile 1.0](https://openid.net/specs/openid-financial-api-part-2-1_0.html) destinado a proteger las API en escenarios de alto valor.

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

PAR permite que su aplicación envíe los parámetros de las solicitudes de autorización de <Tooltip tip="OAuth 2.0: Marco de autorización que define protocolos y flujos de autorización." cta="Ver glosario" href="/es/docs/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip> directamente al endpoint PAR del Servidor de autorización **(1)**. Como respuesta, el Servidor de autorización envía un valor de URI de solicitud, `request_uri` **(2)**, para usarlo cuando llame al endpoint `/authorize` **(3)**. El `request_uri` es una referencia a las solicitudes de autorización almacenadas en el endpoint `/par`, por lo que no quedan expuestas **(4)**. Para obtener más información, lea [Configurar solicitudes de autorización push](/es/docs/get-started/applications/configure-par).

<Frame>
  <img src="https://mintcdn.com/translations/6GE5Z24GDCZehiJ9/docs/images/cdy7uua7fh8z/6ivWNzZR7pnV79AXtjhJca/ad707b701d2a6d8b965ca3afe8846868/Template_for_Docs_-_Authorization_Code_Flow_with_PAR.png?fit=max&auto=format&n=6GE5Z24GDCZehiJ9&q=85&s=8bafb3103b84f8a0c3d6b5476bbd0dc5" alt="" width="1500" height="1000" data-path="docs/images/cdy7uua7fh8z/6ivWNzZR7pnV79AXtjhJca/ad707b701d2a6d8b965ca3afe8846868/Template_for_Docs_-_Authorization_Code_Flow_with_PAR.png" />
</Frame>

<div id="benefits">
  ## Beneficios
</div>

Una de las ventajas de usar PAR es la validación temprana. En otros flujos de OAuth 2.0, como el [Flujo de código de autorización](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow), los usuarios finales son redirigidos al Servidor de autorización para la validación. En PAR, los parámetros de la solicitud se validan al inicio de la solicitud de autorización, antes de redirigir al usuario final. No es recomendable redirigir a los usuarios para mostrarles una página de error.

PAR también envía las solicitudes de autorización por el back-channel. Las comunicaciones por el front-channel dependen de un intermediario (por ejemplo, un navegador) mediante parámetros de consulta HTTPS añadidos (GET, POST). Los mensajes no se envían directamente. Las comunicaciones por el back-channel se envían en el cuerpo de una solicitud autenticada del backend, lo que ofrece un enfoque más directo.

Las solicitudes de autorización push viajan por el back-channel, lo que significa lo siguiente:

* El Servidor de autorización puede confiar en el origen de la solicitud, y las solicitudes no han sido modificadas por un usuario final.
* Los detalles de la solicitud no quedan expuestos en la barra ni en el historial del navegador, y la privacidad se preserva en ese punto del proceso.
* Las restricciones de longitud de la URL no son un factor limitante.

<div id="limitations">
  ## Limitaciones
</div>

* El tamaño máximo de la carga útil de la solicitud es de 10 KB.
* Actualmente no se admiten las aplicaciones públicas. Para obtener más información, consulta [Public and Confidential Applications](/es/docs/get-started/applications/confidential-and-public-applications).

<div id="call-the-par-endpoint">
  ## Llama al endpoint PAR
</div>

<div id="requirements">
  ### Requisitos
</div>

Para realizar una llamada al endpoint PAR, debe:

* Establecer el tipo de contenido de la solicitud en `application/x-www-form-urlencoded`.
* Usar cadenas para todos los parámetros que se envíen.
* Incluir en la solicitud un parámetro adicional para el método de autenticación de la aplicación. Solo los <Tooltip tip="Cliente confidencial: un cliente (aplicación) que puede mantener credenciales de forma segura mediante un servidor backend de confianza. Algunos ejemplos son una aplicación web con un backend seguro y una aplicación Machine-to-Machine (M2M)." cta="Ver glosario" href="/es/docs/glossary?term=confidential+clients">clientes confidenciales</Tooltip> son compatibles con PAR, por lo que están disponibles los siguientes [métodos de autenticación de la aplicación](https://auth0.com/docs/api/authentication#authentication-methods): <Tooltip tip="Secreto del cliente: secreto que usa un cliente (aplicación) para autenticarse con el Servidor de autorización; solo deben conocerlo el cliente y el Servidor de autorización, y debe ser lo suficientemente aleatorio como para que no sea adivinable." cta="Ver glosario" href="/es/docs/glossary?term=Client+Secret">Secreto del cliente</Tooltip>, <Tooltip tip="Secreto del cliente: secreto que usa un cliente (aplicación) para autenticarse con el Servidor de autorización; solo deben conocerlo el cliente y el Servidor de autorización, y debe ser lo suficientemente aleatorio como para que no sea adivinable." cta="Ver glosario" href="/es/docs/glossary?term=JWT">JWT</Tooltip> de clave privada y mTLS. Debe usar el mismo método de autenticación de la aplicación para el endpoint `/token` al recuperar un <Tooltip tip="Token de acceso: credencial de autorización, en forma de una cadena opaca o un JWT, que se utiliza para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=access+token">token de acceso</Tooltip>.

<div id="supported-parameters">
  ### Parámetros admitidos
</div>

El endpoint PAR solo almacena y procesa:

* Los parámetros estándar de OAuth 2.0 y las extensiones aplicables que reconocemos en el endpoint de autorización.
* Hasta 10 parámetros de autorización personalizados con el prefijo `ext-`.

PAR ignora los parámetros de autorización personalizados adicionales. Los parámetros de autorización personalizados no están disponibles en [Auth0 Actions](/es/docs/customize/actions) ni en [Logs](/es/docs/deploy-monitor/logs).

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si usa parámetros de autorización personalizados en Actions, debe añadir el prefijo `ext-`. De lo contrario, no estarán disponibles.
</Callout>

<div id="example-par-request">
  ### Ejemplo de solicitud de PAR
</div>

```bash lines theme={null}
curl --location --request POST https://$tenant/oauth/par \
  -H "content-type: application/x-www-form-urlencoded" \
  -d "client_id=CLIENT_ID"\
"&client_secret=CLIENT_SECRET"\
"&redirect_uri=https://jwt.io"\
"&audience=urn:my-notes-api"\
"&scope=openid%20profile%20read:notes"\
"&response_type=code"
```

<div id="example-par-response">
  ### Ejemplo de respuesta PAR
</div>

En el siguiente ejemplo de respuesta PAR:

* `request_uri` es una referencia a las solicitudes de autorización almacenadas. Los valores de la solicitud se pasan al endpoint GET `/authorize` como parámetro `request_uri`.
* `expires_in` es la cantidad de segundos durante los que `request_uri` es válido. Transcurrido ese tiempo, `request_uri` caduca si no se utiliza. El tiempo de expiración de treinta segundos es un valor estático y no se puede configurar.

```json lines theme={null}
HTTP/1.1 201 Created
 Content-Type: application/json

 {
  "request_uri":
    "urn:ietf:params:oauth:request_uri:6esc_11ACC5bwc014ltc14eY22c",
  "expires_in": 30
 }
```

<div id="rate-limits">
  ### Límites de frecuencia
</div>

Para los inquilinos de producción Essential, Professional y Enterprise, las llamadas al endpoint PAR se incluyen en el límite de tasa estándar de Authentication API. Para obtener más información, consulte [Configuraciones de límites de tasa](/es/docs/troubleshoot/customer-support/operational-policies/rate-limit-policy/rate-limit-configurations) y seleccione su tipo de suscripción. Luego, haga clic en **Authentication API**.

<div id="call-the-authorization-endpoint">
  ## Llamar al endpoint de autorización
</div>

La aplicación usa el valor `request_uri` devuelto por el endpoint `/oauth/par` en la solicitud de autorización y redirige el agente de usuario al endpoint de autorización. Para obtener más información sobre el parámetro `request_uri`, consulte [Configure Push Authorization Requests](/es/docs/get-started/applications/configure-par).

En el siguiente ejemplo, el agente de usuario realiza la siguiente solicitud HTTP:

```http wrap lines theme={null}
GET /authorize?client_id=CLIENT_ID&request_uri=urn%3Aietf%3Aparam...qrwSI HTTP/1.1 Host: TENANT.auth0.com
```

En el caso de un `request_uri` válido, el resto del <Tooltip tip="Flujo de autorización: concesión de autorización (o flujo de trabajo) especificado en el marco de OAuth 2.0." cta="Ver glosario" href="/es/docs/glossary?term=authorization+flow">flujo de autorización</Tooltip> es el mismo.

<div id="validation">
  ### Validación
</div>

* El Servidor de autorización vuelve a validar PAR en esta etapa, como cualquier otra solicitud de autorización.
* El valor de `request_uri` solo se puede usar una vez.
* El Servidor de autorización rechazará un `request_uri` vencido.
* Se rechazará una solicitud que no sea PAR si PAR es obligatorio a nivel del inquilino o del cliente.

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

* [Configurar solicitudes push de autorización (PAR)](/es/docs/get-started/applications/configure-par)
