Saltar al contenido principal
Debido a que el flujo Resource Owner Password (ROP) implica que la aplicación gestione la contraseña del usuario, no debe usarse con clientes de terceros.
Aunque no lo recomendamos, las aplicaciones de alta confianza pueden llamar a API del lado del servidor mediante el flujo Resource Owner Password (a veces denominado concesión de contraseña del o ROPG), que solicita a los usuarios que proporcionen credenciales (username y contraseña), normalmente mediante un formulario interactivo. Si la protección contra ataques de fuerza bruta está habilitada, cuando Auth0 valida las credenciales, también puede comprobar si hay ataques y realizar las acciones adecuadas si detecta uno. Lamentablemente, al usar este flujo con , algunas funciones de pueden no funcionar. Sin embargo, es posible evitar algunos problemas comunes.

Protección contra ataques y API del lado del servidor

La protección contra ataques de fuerza bruta y la dependen de disponer de la dirección IP del usuario. Al llamar a una API desde su servidor, Auth0 trata la dirección IP de su servidor como si fuera la del usuario y la usa como entrada para la protección contra ataques de fuerza bruta y la limitación por IP sospechosa. Esto podría provocar falsos positivos y hacer que la protección contra ataques bloquee a usuarios o active advertencias para solicitudes legítimas. Para evitarlo, envíe la dirección IP del usuario a Auth0 junto con sus credenciales y configure su aplicación para confiar en esa dirección IP.
Por motivos de seguridad, solo puede configurar de esta forma aplicaciones autenticadas (como aquellas con autenticación basada en un Secreto del cliente). Las aplicaciones autenticadas solo deben usarse desde recursos protegidos, que normalmente están del lado del servidor. No las use desde aplicaciones nativas ni aplicaciones de una sola página (SPA), porque no pueden almacenar secretos.

Configure la aplicación para que confíe en la dirección IP

Registre una aplicación web tradicional o una aplicación de máquina a máquina. Mientras configura la aplicación:
  1. En Credenciales, seleccione un Método de autenticación distinto de None.
  2. En Configuración > Configuración avanzada, busque la pestaña OAuth y habilite Confiar en el encabezado IP del endpoint de token, lo que establecerá el encabezado auth0-forwarded-for como fuente confiable de la dirección IP del usuario para la protección contra ataques de fuerza bruta. Esta configuración no estará disponible para aplicaciones no autenticadas.

Envíe la dirección IP del usuario desde su servidor

  1. Cuando solicite tokens mediante el flujo de contraseña del propietario del recurso, incluya un encabezado auth0-forwarded-for que contenga la dirección IP del usuario. Asegúrese de que la dirección IP que proporcione realmente pertenezca al usuario.
    Confiar en encabezados como auth0-forwarded-for (o, en general, en datos procedentes de aplicaciones) como fuente de la dirección IP del usuario puede ser arriesgado. Como este encabezado es fácil de falsificar y permite eludir la validación de protección contra ataques, hágalo solo si sabe que puede confiar en él.
  2. Especifique listas de IP permitidas que se ignorarán al activar la protección contra ataques de fuerza bruta y la limitación por IP sospechosa.

Listas de IP permitidas con protección contra ataques de fuerza bruta y limitación por IP sospechosa

Si su aplicación autenticada está configurada para enviar el encabezado auth0-forwarded-for:
  • Solo la dirección IP incluida en el encabezado auth0-forwarded-for se compara con las listas de IP permitidas para la protección contra ataques de fuerza bruta y la limitación por IP sospechosa.
  • La dirección IP del proxy se ignora para la protección contra ataques de fuerza bruta y la limitación por IP sospechosa, por lo que no es necesario agregarla a las listas de IP permitidas.
  • Si determinados clientes que usan el proxy no deben estar sujetos a la protección contra ataques de fuerza bruta o a la limitación por IP sospechosa, agréguelos a las listas de IP permitidas.
El encabezado auth0-forwarded-for solo se aceptará en llamadas autenticadas con el Secreto del cliente. Si su aplicación no está autenticada o no está configurada para enviar el encabezado auth0-forwarded-for:
  • La dirección IP de origen de cada solicitud se compara con las listas de IP permitidas para la protección contra ataques de fuerza bruta y la limitación por IP sospechosa.
  • Si incluye la IP del proxy en la lista de IP permitidas, todo el tráfico que pase por el proxy quedará exento de la protección contra ataques de fuerza bruta y de la limitación por IP sospechosa. Probablemente esto no sea lo que desea.

Ejemplo

Gestionar las respuestas de detección de contraseñas comprometidas

Si ha habilitado Breached Password Detection para su inquilino, debe configurar su aplicación para gestionar adecuadamente las respuestas de la Auth0 Authentication API. Por ejemplo, si envía una contraseña mediante el flujo ROP y Auth0 detecta que se ha visto comprometida, la Authentication API devuelve una respuesta con el código de estado HTTP 401 Unauthorized y el siguiente cuerpo:
{
    "error": "password_leaked",
    "error_description": "This login attempt has been blocked because the password you're using was previously disclosed through a data breach (not in this application). Please check your email for more information."
}
Su aplicación debe manejar este error, mostrar un mensaje al usuario e iniciar un flujo interactivo de restablecimiento de contraseña.

Validar mediante los registros

Si la configuración es correcta, verá lo siguiente en los registros:
type:  sepft
...
ip:  <ip from auth0-forwarded-for header>
client_ip:  <ip of actual client/proxy>
...

Más información