- event.refresh_token: Proporciona información relevante sobre
refresh_tokensexistentes, comoid,created_at,expires_at,idle_expires_at,clients_id, información deldevice, comoASN,IPyUser_agent, y, en flujos basados en navegador,session_id. Este objeto se rellena en flujos de intercambio del token de actualización. - api.refreshToken: Te permite administrar tokens de actualización existentes revocando sesiones o cambiando las fechas de expiración.
event.refresh_token para revisar la propiedad last_exchange_at y evaluar los riesgos asociados con las transacciones actuales. También puedes combinar el objeto event.refresh_token con otros objetos de evento, como event.authentication.
Después, puedes usar el objeto api.refreshToken para establecer fechas de expiración del token de actualización o revocar el token de actualización.
Para obtener más información sobre estos objetos, consulta:
- Objeto Event: Obtén información sobre el objeto Event del token de actualización y sus propiedades.
- Objeto API: Obtén información sobre el objeto API del token de actualización y sus métodos.
Revocar tokens de actualización con Actions
srrt).
Si desea usar el método
api.refreshToken.revoke(reason), asegúrese de que exista el objeto event.refresh_token.Supervise los eventos de revocación en los registros
srrt que indica que se revocó un token de actualización.
Si el token de actualización está vinculado a una sesión autenticada previamente, el registro incluirá una referencia a la sesión autenticada en el atributo session_id.
Cambiar las fechas de expiración de los tokens de actualización con Actions
- api.refreshToken.setExpiresAt(absolute) le permite definir una nueva fecha de expiración absoluta para un token de actualización determinado.
- api.refreshToken.setIdleExpiresAt(idle) le permite establecer una nueva fecha de expiración por tiempo de inactividad para un token de actualización determinado.
- La organización de un usuario
- La conexión de Auth0 de un usuario
- La pertenencia a grupos o el perfil de un usuario específico
- La evaluación de riesgos
- Cualquier otro criterio dinámico disponible durante la ejecución de la Action
Los métodos
api.refreshToken.setExpiresAt(absolute) y api.refreshToken.setIdleExpiresAt(idle) permiten definir la expiración de un token de actualización antes de su emisión o modificar la expiración de un token de actualización existente durante un flujo de intercambio del token de actualización.Los métodos api.refreshToken.setExpiresAt(absolute) y api.refreshToken.setIdleExpiresAt(idle) convertirán los tokens de actualización sin expiración en tokens de actualización con expiración, usando la configuración predeterminada de expiración de tokens de actualización como valores máximos.El método api.refreshToken.setIdleExpiresAt(idle) establece el tiempo de espera por inactividad para los tokens de actualización. Si no se llama a este método en cada intercambio exitoso, el tiempo de espera por inactividad se sobrescribirá con la configuración de la aplicación para la duración del token de actualización.Limitaciones
-
Los tokens de actualización emitidos a partir del 21-09-2023 (22-02-2024 para los inquilinos de la región US-3) contienen la propiedad de ID de sesión (
session_id) con el valor correspondiente. Los tokens de actualización emitidos antes de esa fecha contienen esta propiedad con un valornull. -
Los tokens de actualización emitidos antes del lanzamiento del método de API post-login
api.refreshToken.revoke(reason)no contendrán información deevent.refresh_token.device. -
Los tokens de actualización que no expiran o que no se han intercambiado no contendrán la propiedad
event.refresh_token.last_exchanged_at. -
Por motivos de seguridad, los tiempos de espera por inactividad y absolutos no pueden establecerse por encima de la configuración de tokens de actualización de la aplicación definida en expiraciones de tokens de actualización. Si intenta establecer una fecha por encima de la configuración de expiración, los métodos de API actualizarán el valor hasta el definido en expiraciones de tokens de actualización y registrarán un evento de advertencia (
w) en los registros del inquilino. -
Tanto
api.refreshToken.setExpiresAt()comoapi.refreshToken.setIdleExpiresAt()solo pueden acortar sus respectivas duraciones a partir de los valores actuales. No pueden ampliarlas ni aumentar la duración.
Casos de uso: Revocar un token de actualización
api.refreshToken.revoke(reason) y los objetos de evento.
Revocar tokens de actualización debido a ImpossibleTravel
event.authentication.ImpossibleTravel.code sea igual a la propiedad impossible_travel_from_last_login. Si es true, la Action llama a api.refreshToken.revoke() para:
- Denegar la transacción
- Revocar el Token de actualización
- Devolver un error
access_deniedcon respuesta 403 - Emitir el error “Se revocó el token de actualización debido a un viaje imposible”
Revocar tokens de actualización por vinculación de IP
event.refresh_token.device.initial_ip y event.request.ip para garantizar que una transacción de token de actualización se mantenga en la misma dirección IP durante toda su vigencia. En este caso, cualquier cambio de IP se considera un riesgo y requiere un nuevo token de actualización.
event.refresh_token.device.initial_ip y event.request.ip. La Action determina si la dirección IP de la transacción ha cambiado. Si es true, la Action llama a api.refreshToken.revoke() para:
- Denegar la transacción
- Revocar el token de actualización
- Devolver una respuesta
403con el erroraccess_denied - Generar el error “
Invalid IP change”
request.asn y event.refresh_token.device.initial_asn para supervisar cambios de ASN en lugar de cambios de IP.
Casos de uso: Personalizar las fechas de expiración del Token de actualización
api.refreshToken.setExpiresAt(absolute) y api.refreshToken.setIdleExpiresAt(idle).
Personaliza la fecha de expiración absoluta del Token de actualización según la Organización
refresh_token_timeout de la Organización para establecer la fecha de expiración del Token de actualización.
- Tokens recién emitidos:
current_timemásorganization_refresh_token_lifetime - Tokens existentes:
event.refresh_token.created_atmásorganization_refresh_token_lifetime
Personalizar el tiempo de inactividad del Token de actualización según el rol de pertenencia
current_time más refresh_token_idle_timeout. Ten en cuenta que estamos cambiando este tiempo de inactividad tanto para los tokens recién emitidos como para los existentes durante el intercambio del token de actualización.