Нормальный вариант? Как думаете? Есть ли способы лучше?
Да. Это общепринятый стандартный вариант который решает данную задачу.
Минус этого способа в том что блокируется IP а это может быть выходной шлюз крупного провайдера с которого ходят тысячи пользователей.
Если есть необходимость его можно комбинировать с другими способами, но в большинстве случаев его достаточно.
Вообще по ресурсу надо смотреть. Например можно делать небольшую задержку в пять секунд уже со второй попытки - и пользователя не напрягает и перебор существенно замедляет. А через пять неуспешных еще и капчу добавить.
Можно вести статистику по IP и если с него много попыток авторизации, но ни одной успешной - в бан его на некоторое время. Собственно fail2ban похоже работает.