Saltar al contenido principal
Para protegerse contra ataques de suplantación y de repetición, que implican intentos no autorizados de comprometer o reutilizar un subject_token, el Intercambio de tokens personalizado admite Suspicious IP Throttling. Esto le permite indicar en su código de Actions cuándo un subject_token no es válido, lo que permite a Auth0 contabilizar la cantidad de intentos fallidos enviados desde esa IP externa. Cuando la cantidad de intentos fallidos desde una dirección IP alcanza un umbral preconfigurado, Auth0 bloquea el tráfico de una solicitud de Intercambio de tokens personalizado procedente de esa IP con el siguiente error:
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
{
    "error": "too_many_attempts",
    "error_description": "We have detected suspicious login behavior and further attempts will be blocked. Please contact the administrator."
}
La dirección IP puede volver a hacer solicitudes después de un período de tiempo configurado. Recomendamos usar Suspicious IP Throttling en todos los casos de uso de Custom Token Exchange, especialmente con aplicaciones nativas y aplicaciones de una sola página (SPA). Dado que las aplicaciones no confidenciales, como las aplicaciones nativas y las SPA, no pueden almacenar secretos de forma segura para autenticarse, a los atacantes les resulta más fácil reutilizar subject tokens robados o filtrados.
Para implementar la protección de Suspicious IP Throttling, use api.access.rejectInvalidSubjectToken en su código de Actions siempre que el subject token recibido no supere una validación estricta.
Suspicious IP Throttling está activado de forma predeterminada para los inquilinos de Auth0. Cuando está activado, se aplican los ajustes predeterminados de Custom Token Exchange:
  • Umbral: 10. Número máximo de intentos fallidos para una dirección IP.
  • Tasa de limitación: 6 por hora. Habrá un intento adicional disponible cada 10 minutos hasta que se restablezca el umbral.

Configurar Suspicious IP Throttling para Custom Token Exchange

Puede configurar un umbral personalizado y una tasa de limitación para Custom Token Exchange con la Management API. Primero, obtenga un token de Management API para usar la API. Luego, realice la siguiente solicitud GET al endpoint para obtener la configuración de Suspicious IP Throttling:
curl --location 'https://{yourDomain}/api/v2/attack-protection/suspicious-ip-throttling' \
--header 'Authorization: Bearer <YOUR_MANAGEMENT_API_TOKEN>' \
Recibirá una respuesta como la siguiente:
{
  "enabled": true,
  "shields": [
    "admin_notification",
    "block"
  ],
  "allowlist": [],
  "stage": {
    "pre-login": {
      "max_attempts": 100,
      "rate": 864000
    },
    "pre-user-registration": {
      "max_attempts": 50,
      "rate": 1200
    },
    "pre-custom-token-exchange": {
      "max_attempts": 10,
      "rate": 600000
    }
  }
}
Use la siguiente solicitud PATCH para actualizar la etapa pre-custom-token-exchange con los valores necesarios. Tenga en cuenta que la tasa define el intervalo de tiempo, en milisegundos, tras el cual se conceden nuevos intentos.
curl --location --request PATCH 'https://{yourDomain}/api/v2//attack-protection/suspicious-ip-throttling' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_MANAGEMENT_API_TOKEN>' \
--data '{"stage":{"pre-custom-token-exchange":{"max_attempts":10,"rate":600000}}}'