Ограничение числа попыток авторизации
Настройка "Ограничение числа попыток авторизации" защищает учетные записи от подбора паролей (brute force). При превышении допустимого количества неудачных попыток входа за определенный период система применяет временную блокировку и вводит задержки при последующих авторизациях.
Описание механизма
При включении настройки для всех пользователей задаётся ограничение на количество неудачных попыток входа в приложение. Предусмотрен следующий сценарий:
- Пользователь выполняет попытку входа с неверными данными аутентификации;
- Система фиксирует неудачную попытку входа и учитывает её при следующих попытках войти. Каждая неудачная попытка имеет время жизни в системе, по истечению которого она перестаёт учитываться. Данный параметр может быть настроен в разделе "Настройки доступа"/"Доступ";
- При достижении лимита попыток пользователь получает временную блокировку на вход в систему;
- Если во время блокировки пользователь попытается повторно войти в систему, его блокировка будет продлена.
Блокировка распространяется только на вход в систему и не затрагивает активные сессии.
Пользователи, уже вошедшие в учетную запись, сохраняют возможность работы с платформой.
Дополнительным элементом защиты является возможность оповещения администратора посредством E-Mail или в чате Telegram.
Задание настроек
Механизм настраивается в разделе "Настройки доступа", в подразделе "Доступ". Подробнее описание настроек находится на странице Управление доступом.
Поведение механизма при смене настроек
Если в ходе эксплуатации системы были изменены параметры блокировки (количество максимальных попыток/время блокировки/время мониторинга), либо настройка была полностью отключена, изменения не отразятся на ранее заблокированных пользователях. Если пользователь повторно попытается войти в систему, его время блокировки будет продлено на основе времени задержки, которое использовалось в момент блокировки пользователя, а не на основе новых настроек.
Примеры
- Пользователь заблокирован, срок блокировки 15 минут, время фиксированное. Если администратор выключит механизм, пользователь останется заблокированным на 15 минут, и при повторных попытках время блокировки будет продлеваться на 15 минут.
- Пользователь заблокирован, срок блокировки 10 минут, время нарастающее. Если администратор сменит общее время блокировки на 5 минут и сделает время фиксированным, то пользователь останется заблокирован на 10 минут, а блокировки будут продлеваться на фиксированные 10 минут.
Применение настройки по типам аутентификации
Механизм ограничивает попытки входа в систему внутренних пользователей приложения, а также пользователей, использующих LDAP и OAuth в качестве метода аутентификации.
LDAP (Active Directory)
В случае, если планируется использование аутентификации LDAP, необходимо учесть следующие условия:
- Если уже настроена защита от подбора паролей в Active Directory, то можно отключить механизм защиты в приложении;
- Если не настроена защита в Active Directory, но использовать механизм защиты в приложении необходимо, тогда его нужно включить;
- В приложении не планируется пользоваться защитой. Тогда защита должна быть отключена и в платформе, и в Active Directory;
- Необходимо обеспечить защиту и в Active Directory, и в приложении. В этом случае необходимо настроить параметры идентично и в платформе и в AD, в противном случае корректная работа не гарантируется.
Если защита от подбора пароля включена и в Active Directory, и в приложении, возможна блокировка входа для пользователя AD, чья учетная запись ещё не зарегистрирована в системе. Такого пользователя невозможно разблокировать вручную через раздел администрирования в приложении, поскольку его УЗ отсутствует в приложении. Для восстановления возможности входа потребуется обнулить счётчик неудачных попыток пользователя в Redis.
Счётчик попыток входа по LDAP-пользователю хранится в Redis по ключу li|<login>|2, где <login> - логин
пользователя, под которым он пытался войти в систему. Счётчик доступен только при включённой защите от подбора в
платформе.
Kerberos аутентификация
Для пользователей, проходящих аутентификацию с помощью Kerberos, неудачные попытки входа не регистрируются.
Защита от угадывания логинов пользователей
В текущей реализации механизм защиты от угадывания не предусмотрен, потому что факт блокировки фиксируется по идентификатору пользователя. Для несуществующих пользователей не существует идентификатора.