> ## 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 Rich Authorization Requests (RAR) con el Flujo de código de autorización.

# Flujo de código de autorización con Rich Authorization Requests (RAR)

Con [Rich Authorization Requests (RAR)](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-rar), los clientes pueden solicitar y obtener de los <Tooltip tip="Resource Owner: entidad (como un usuario o una aplicación) capaz de otorgar acceso a un recurso protegido." cta="Ver glosario" href="/es/docs/glossary?term=resource+owners">propietarios de recursos</Tooltip>, como los usuarios finales, datos de <Tooltip tip="Autorización detallada (FGA): producto de Auth0 que permite a usuarios individuales acceder a objetos o recursos específicos." cta="Ver glosario" href="/es/docs/glossary?term=fine-grained+authorization">autorización detallada</Tooltip>. Los clientes pueden enviar datos de RAR al endpoint de Pushed Authorization Request (PAR) como parte del Flujo de código de autorización. Para obtener más información, lea [Configure Pushed Authorization Requests](/es/docs/get-started/applications/configure-par).

En un flujo tradicional 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>, cuando un cliente solicita acceso a un <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=resource+server">servidor de recursos</Tooltip> mediante [alcances](/es/docs/get-started/apis/scopes), el propietario del recurso concede al cliente acceso a esos recursos. En una Rich Authorization Request, los clientes pueden enviar un parámetro `authorization_details` al endpoint `/par` para solicitar permisos más granulares que los solicitados mediante alcances. Esto permite un control más detallado del acceso a los recursos, tanto para los clientes como para los propietarios de recursos, y mitiga los riesgos de seguridad asociados con el aprovisionamiento excesivo de acceso.

Como Auth0 solo admite validar los tipos de `authorization_details`, debe implementar la validación de los objetos JSON de `authorization_details`. Para obtener más información, lea [Configure Rich Authorization Requests](/es/docs/get-started/apis/configure-rich-authorization-requests).

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

En una Rich Authorization Request, el parámetro `authorization_details` es un arreglo JSON de objetos, cada uno de los cuales debe incluir un campo `type` representado como una cadena. El campo `type` determina qué campos del objeto se pueden personalizar. Un arreglo `authorization_details` puede contener varias entradas del mismo tipo. Para obtener más información sobre cómo registrar tipos de `authorization_details`, consulta [Configure Rich Authorization Requests](/es/docs/get-started/apis/configure-rich-authorization-requests).

Auth0 presenta `authorization_details` al usuario para que los autorice en una pantalla de consentimiento personalizada. Para obtener más información, consulta [Set customized consent prompt](/es/docs/get-started/apis/configure-rich-authorization-requests#set-customized-consent-prompt).

Debes pasar el parámetro `authorization_details` al endpoint `/par`, lo que permite que el <Tooltip tip="Servidor de autorización: servidor centralizado que contribuye a definir los límites del acceso de un usuario. Por ejemplo, tu 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> de Auth0 realice una validación temprana del `type`. El endpoint `/par` envía las solicitudes de autorización por el canal de backend para evitar que se filtren datos confidenciales en el canal frontal, como el navegador. Una vez que hayas enviado la solicitud de autorización al endpoint `/par`, la aplicación redirigirá al endpoint `/authorize` y luego continuará con el Flujo de código de autorización. Para obtener más información, consulta [Authorization Code Flow with PAR](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/authorization-code-flow-with-par).

Para completar el Flujo de código de autorización, intercambia el código de autorización en el endpoint `/oauth/token`, como en el siguiente ejemplo:

```http lines theme={null}
POST https://{YOUR_DOMAIN}.auth0.com/oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&client_id={YOUR_CLIENT_ID}&client_secret={YOUR_CLIENT_SECRET}&code={AUTHORIZATION_CODE}&redirect_uri=https://jwt.io
```

Si la operación se completa correctamente, debería recibir una respuesta con el <Tooltip tip="Token de acceso: credencial de autorización, en forma de una cadena opaca o JWT, utilizada para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=access+token">token de acceso</Tooltip> y el arreglo `authorization_details`:

```json lines theme={null}
{
  "access_token": "ey...ZQ",
  "expires_in": 86400,
  "authorization_details": [
{
  "type": "money_transfer", 
  "instructedAmount": {"amount": 2500, "currency": "USD"},   
  "sourceAccount": "xxxxxxxxxxx1234", 
  "destinationAccount": "xxxxxxxxxxx9876", 
  "beneficiary": "Hanna Herwitz", 
  "subject": "A Lannister Always Pays His Debts"
}
  ],
  "token_type": "Bearer"
}
```

Como parte de las [prácticas recomendadas de JWT](https://datatracker.ietf.org/doc/html/rfc9068#name-privacy-considerations), el cliente puede usar `authorization_details` para comprender el alcance de la autorización que se le ha concedido sin tener que inspeccionar el token de acceso. Si la <Tooltip tip="Audiencia: identificador único de la audiencia de un token emitido. Se denomina aud en un token, y su valor contiene el ID de una aplicación (ID de cliente) para un ID Token o de una API (identificador de API) para un Token de acceso." cta="Ver glosario" href="/es/docs/glossary?term=audience">audiencia</Tooltip> solicitada es una API que requiere [tokens de acceso JWE](/es/docs/secure/tokens/json-web-tokens), el endpoint `/oauth/token` devuelve una respuesta que omite todos los campos del objeto de `authorization_details` excepto `type`. Los claims del token de acceso no se ven afectados en la respuesta.

```json lines theme={null}
{
  "iss": "https://my_tenant.auth0.com/",
  "sub": "auth0|me",
  "aud": "https://myapi.authzero.com",
  "iat": 1683661385,
  "exp": 1683747785,
  "azp": "my_client",
  "authorization_details": [
{
  "type": "money_transfer", 
  "instructedAmount": {"amount": 2500, "currency": "USD"},   
  "sourceAccount": "xxxxxxxxxxx1234", 
  "destinationAccount": "xxxxxxxxxxx9876", 
  "beneficiary": "Hanna Herwitz", 
  "subject": "A Lannister Always Pays His Debts"
}
  ]
}
```

<div id="configure-rar-for-the-authorization-code-flow">
  ## Configurar RAR para el Flujo de código de autorización
</div>

Antes de configurar Rich Authorization Requests para el Flujo de código de autorización, debe:

* Crear un [dominio personalizado](/es/docs/customize/custom-domains).
* Crear una plantilla personalizada para las [páginas de Universal Login](/es/docs/customize/login-pages/universal-login/customize-templates). Para obtener más información sobre cómo personalizar una plantilla de página de <Tooltip tip="Universal Login: su aplicación redirige a Universal Login, alojado en el Servidor de autorización de Auth0, para verificar la identidad de un usuario." cta="Ver glosario" href="/es/docs/glossary?term=Universal+Login">Universal Login</Tooltip>, consulte la documentación de la [API de plantillas de página](/es/docs/customize/login-pages/universal-login/customize-templates#page-templates-api).

Para configurar RAR para el Flujo de código de autorización, debe:

* Registrar tipos de `authorization_details` para un servidor de recursos.
* Configurar la pantalla de consentimiento personalizada.

Para obtener más información, consulte [Configurar Rich Authorization Requests](/es/docs/get-started/apis/configure-rich-authorization-requests).

<div id="access-authorization_details-in-actions">
  ## Acceder a `authorization_details` en Actions
</div>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 no permite actualizar RAR con Actions.
</Callout>

Auth0 expone el parámetro `authorization_details` en la [Action de post-login](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-event-object) mediante la propiedad `event.transaction.requested_authorization_details`. Puede usar esta propiedad en una Action para mostrar al usuario los detalles de la transacción durante un [desafío de MFA](/es/docs/secure/highly-regulated-identity/transactional-authorization-with-authorization-code-flow#push-notifications).

<div id="what-doesnt-auth0-support">
  ## ¿Qué no admite Auth0?
</div>

Auth0 no admite:

* Actualizar RAR con Actions.
* Anunciar tipos de RAR para que los clientes puedan detectarlos.
* Validar objetos RAR más allá de comprobar que tienen una propiedad `type` que coincide con los tipos permitidos para la API. Para obtener más información, consulta [Configurar RAR](/es/docs/get-started/apis/configure-rich-authorization-requests).

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

* [Configurar Rich Authorization Requests (RAR)](/es/docs/get-started/apis/configure-rich-authorization-requests)
