Como dijo @Rory, depende de su postura de seguridad, pero si no es un sitio de alto riesgo y le preocupa bloquear a varios usuarios que compartan la misma IP, un método que podría usar sería rastrear la cantidad de intentos de inicio de sesión por IP y aplicar una regulación muy moderada (para un humano) que haría que un ataque de fuerza bruta sea prohibitivo.
Por ejemplo, si se han intentado más de X intentos desde una dirección IP determinada en el último segundo (donde X es su número estimado de intentos de inicio de sesión simultáneos por segundo desde una sola dirección IP) envíe un 403 (o mejor, un 429 ) con un mensaje que dice algo así como "Se han realizado demasiados intentos recientemente, espere unos momentos e inténtelo de nuevo".
De esta manera, es muy improbable que un ser humano tenga un problema, incluso si tiene una IP compartida, mientras que cualquier ataque de fuerza bruta se limitará a X por segundo, lo que es cientos a miles de veces más lento que un no - Ataque estrangulado.
Si desea hacerlo un poco más seguro sin tener que recurrir a la prohibición automática, también puede enviar un correo electrónico automatizado a asistencia siempre que se haya alcanzado el límite máximo de inicio de sesión un número excesivo de veces (quizás 100) desde una sola IP . De esa manera usted podría inspeccionar los registros y decidir por sí mismo si esa dirección IP en particular vale la pena o no. Prohibida.
Este enfoque intercambia un poco de seguridad por facilidad de uso, ya que estamos evitando los captchas o cualquier otra cosa que pueda ralentizar a un humano.