Para usar (MRRT), configure las políticas de token de actualización de su aplicación mediante la Management API de Auth0. Estas políticas especifican qué API y alcances puede solicitar la aplicación durante el intercambio de un token de actualización.Puede definir políticas de MRRT en la propiedad refresh_token.policies de la aplicación.
Propiedad
Tipo
Descripción
audience
string
El identificador de la API de Auth0 de la aplicación a la que se le permitirá usar el token de actualización.
scope
Array de strings
La lista de alcances permitidos al solicitar un token de acceso para la audiencia especificada. El scope debe ser igual o más limitado que los alcances definidos en la API.
Las propiedades audience y scope deben corresponder a una aplicación existente en su inquilino; de lo contrario, se ignorarán silenciosamente durante el intercambio del token de actualización.
Para las aplicaciones existentes, realice una llamada PATCH al endpoint Update a Client. Para crear una aplicación nueva, realice una llamada POST al endpoint Create a Client:Respuesta de ejemplo:
Implementa un token de actualización multirrecurso
Una vez que configures el token de actualización de tu aplicación con políticas de MRRT, podrás empezar a intercambiar un único token de actualización por para varias API.
Para ello, tu aplicación debe iniciar un flujo de inicio de sesión mediante el Flujo de código de autorización o la Concesión de contraseña del propietario del recurso.
Paso 1: Autentíquese y solicite un token de actualización
Para recibir un token de actualización, incluya el scope offline_access al iniciar la solicitud de autenticación. Para obtener más información, consulte Obtener tokens de actualización.
Si no recibe un token de actualización, confirme lo siguiente:
Paso 2: Intercambie el token de actualización por una API distinta
Una vez emitido el token de actualización, puede solicitar tokens de acceso para cualquier API y para los alcances definidos tanto en la autenticación inicial como en la política de MRRT. Por ejemplo: Para obtener más información, consulta Uso de tokens de actualización.Si usas el SDK de Auth0 para Swift, puedes intercambiar el token de actualización con el siguiente código:
credentialsManager.apiCredentials(forAudience: "https://example.com/me", scope: "create:me:authentication_methods") { result in switch result { case .success(let apiCredentials): print("Obtained API credentials: \(apiCredentials)") case .failure(let error): print("Failed with: \(error)") }}
Para obtener más información, consulte Auth0 Swift SDK.Si usa el SDK de Auth0 para Android, puede intercambiar el Token de actualización con el siguiente código:
Usar el token de actualización multirrecurso con Actions
El uso de MRRT con Actions le permite configurar una lógica de decisión dinámica basada en las políticas de MRRT de la aplicación. Para facilitar esto, las Actions posteriores al inicio de sesión incluyen el objeto event.client.refresh_token.policies, que proporciona información relevante, incluida la y el scope.Puede usar el objeto event.client.refresh_token.policies para evaluar la audiencia y el scope de la aplicación al emitir o intercambiar un token de actualización, y garantizar un control preciso sobre el acceso a la API y los scopes.
exports.onExecutePostLogin = async (event, api) => { // retorna la lista de APIs permitidas en el cliente const allowedAPIsInTheClient = event.client.refresh_token?.policies; if(allowedAPIsInTheClient?.some(policy => policy?.audience?.includes('https://myapi'))){ // lógica personalizada }};
MRRT actúa como una extensión de la autenticación original, no como un reemplazo. Al intercambiar un token de actualización, Auth0 evalúa la solicitud de intercambio según la siguiente lógica:
Si se omite el parámetro audience, Auth0 devuelve un token de acceso con la audiencia original y cualquiera de los alcances adicionales configurados en la política de MRRT.
Si se especifica un nuevo parámetro audience, Auth0 verifica que la audiencia esté incluida en la política de MRRT y devuelve un token de acceso para la nueva audiencia con sus alcances configurados.
Si se omite el parámetro scope, Auth0 combina todos los alcances permitidos de la solicitud original y de la política de MRRT.
Si se especifica un nuevo parámetro scope, Auth0 valida los alcances solicitados y devuelve un token de acceso con los alcances incluidos en la política de MRTT. Los alcances solicitados que sean no válidos o no estén autorizados se ignoran.
Si el parámetro audience es el mismo que el de la solicitud original, Auth0 aplica la política de MRRT y devuelve un token de acceso para la audiencia con todos los alcances configurados en MRRT y los alcances de la autenticación original.
MRRT le permite ampliar el acceso del usuario a nuevas API sin emitir nuevos tokens de actualización ni requerir que el usuario vuelva a iniciar sesión.
Un intercambio con un token de actualización que use la misma audiencia y no incluya alcances daría como resultado un token de acceso que contiene todos los alcances configurados: