Saltar al contenido principal
Con Rich Authorization Requests (RAR), los clientes pueden solicitar y obtener de los , como los usuarios finales, datos de . 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. En un flujo tradicional de , cuando un cliente solicita acceso a un mediante alcances, 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.

Cómo funciona

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. 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. Debes pasar el parámetro authorization_details al endpoint /par, lo que permite que el 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. 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:
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 y el arreglo authorization_details:
{
  "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, 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 solicitada es una API que requiere tokens de acceso JWE, 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.
{
  "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"
}
  ]
}

Configurar RAR para el Flujo de código de autorización

Antes de configurar Rich Authorization Requests para el Flujo de código de autorización, debe: 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.

Acceder a authorization_details en Actions

Auth0 no permite actualizar RAR con Actions.
Auth0 expone el parámetro authorization_details en la Action de post-login 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.

¿Qué no admite Auth0?

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.

Más información