Включение продвинутой защиты от брутфорс-атаки
Продукт «Служба идентификации и управления доступом "Фидена"» позволяет включить защиту не только на уровне области безопасности (realm), но и выполнить дополнительную конфигурацию защиты для конкретных пользователей, которым назначены определенные роли.
Настроить опцию продвинутой защиты от брутфорс-атаки можно только при условии, что включена стандартная защита на уровне области безопасности (realm). |
Для этого выберите роль и задайте для нее необходимые атрибуты:
-
bruteforce_protection.enabled
— флаг, позволяющий отключить возможность блокировки пользователя при переборе неверных паролей:-
true
— включает переопределенную настройку защиты; прочие значения игнорируются; -
false
— отключает для обладателей данной роли блокировку при попытках перебора пароля вне зависимости от прочих настроек;
-
-
bruteforce_protection.permanent_lockout
— флаг, устанавливающий тип блокировки:-
true
— устанавливает постоянную блокировку пользователей; -
false
— устанавливает временную блокировку; прочие значения параметра или его отсутствие интерпретируется как значениеfalse
;
-
-
bruteforce_protection.max_login_failures
— количество неудачных попыток ввода пароля перед блокировкой — целое число (нецелочисленные значения параметра или его отсутствие интерпретируется как30
); -
bruteforce_protection.quick_login_check_ms
— минимальное время между попытками ввода неверного пароля в миллисекундах (нецелочисленные значения параметра или его отсутствие интерпретируется как1000
, 1 секунда или 1000 миллисекунд); в случае если интервал между неудачными попытками ввода пароля меньше значения данного параметра, осуществляется временная блокировка пользователя на временной интервал из параметраbruteforce_protection.min_quick_login_wait_sec
. Данное правило применяется всегда при включенной защите от брутфорс-атак вне зависимости от выбранного типа блокировки (временная или постоянна) в параметреbruteforce_protection.permanent_lockout
. -
bruteforce_protection.min_quick_login_wait_sec
— минимальное время, в течение которого пользователю будет недоступен ввод пароля, при попытках входа в систему чаще, чем установлено в предыдущем параметре, в секундах (нецелочисленные значения параметра или его отсутствие интерпретируется как60
, 1 минута или 60 секунд); -
bruteforce_protection.wait_increment_sec
— используется только при временной блокировке пользователей; интервал, на который увеличивается время блокировки учетной записи пользователя, после того как будет превышено число попыток ввода неверного пароля, в секундах (нецелочисленные значения параметра или его отсутствие интерпретируется как60
, 1 минута или 60 секунд); -
bruteforce_protection.max_wait_sec
— используется только при временной блокировке пользователей; максимальное время, в течение которого учетная запись пользователя может быть заблокирована, в секундах (нецелочисленные значения параметра или его отсутствие интерпретируется как900
, 15 минут или 900 секунд); -
bruteforce_protection.failure_reset_time_sec
— используется только при временной блокировке пользователей; время, по истечении которого будет обнулен счетчик неудачных попыток ввода пароля, в секундах (нецелочисленные значения параметра или его отсутствие интерпретируется как43200
, 12 часов или 43200 секунд).
Чтобы назначить роль (как клиента области безопасности (realm), так и самой области безопасности (realm) пользователю, выберите один из следующих способов:
-
прямое присвоение роли пользователю;
-
присвоение роли пользователю через композитную роль области безопасности (realm);
-
присвоение пользователю ролей через группу пользователей, обладающих данными ролями (с учетом родительских и дочерних групп).
Вы можете присвоить учетной записи пользователя одновременно несколько ролей с переопределенными параметрами защиты от брутфорс-атак.
С учетом этих особенностей алгоритм выбора защиты от брутфорс-атак выглядит следующим образом:
-
Для учетной записи пользователя, который неправильно ввел пароль, осуществляется поиск всех ролей (с учетом наследования через композитные роли и группы пользователей), обладающих атрибутами защиты.
-
Среди извлеченных настроек защиты выбирается наиболее приоритетная. Это требуется, если пользователь обладает множеством ролей с противоречащими настройками защиты. Приоритетными считаются настройки с наименее сильной защитой. Принцип приоритезации:
-
Настройка с явно отключенной защитой является более приоритетной по сравнению с другими.
-
Настройка с временной блокировкой пользователей является более приоритетной, по сравнению с постоянной блокировкой.
-
Среди настроек с одинаковым типом блокировки (временной, постоянной) более приоритетной считается настройка с наибольшим числом попыток неудачного ввода пароля.
-
-
Выбранная настройка защиты применяется к пользователю по аналогии со штатным механизмом защиты Keycloak.
-
Если для конкретного пользователя не нашлось настроек защиты от такого типа атак, то исполняется настройка защиты для всей области безопасности (realm) — штатный механизм защиты Keycloak.
Данный алгоритм позволяет установить наиболее надежные (строгие) параметры защиты от брутфорс-атак на уровне области безопасности (realm), а также ослабить их для пользователей с определенными ролями/группами.
Настройка защиты с помощью ролей
-
На главной странице из выпадающего списка выберите область безопасности (realm), для которой вы хотите выполнить настройку.
-
Выберите роль, для которой вы хотите назначить атрибут:
-
Если это роль уровня области безопасности (realm):
-
В главном меню выберите пункт Realm roles.
-
На открывшейся форме Realm roles выберите роль, для которой вы хотите назначить атрибут.
-
-
Если это роль уровня клиента области безопасности (realm):
-
В главном меню выберите пункт Clients и перейдите на форму настроечных параметров необходимого клиента.
-
На форме Clients перейдите на вкладку Roles и выберите роль, для которой вы хотите назначить атрибут.
-
-
-
На форме настроечных параметров роли перейдите на вкладку Attributes.
-
В поле Key задайте необходимый атрибут.
-
В поле Value укажите значение этого атрибута.
-
Используйте кнопку Add an attribute, чтобы добавить еще аттрибут и его значение.
-
Подтвердите свои действия, нажав на кнопку Save.
Настройка защиты с помощью композитных ролей
-
На главной странице из выпадающего списка выберите область безопасности (realm).
-
В главном меню выберите пункт Realm roles.
-
На открывшейся форме Realm roles выберите композитную роль, для которой вы хотите назначить атрибут.
-
Назначьте атрибуты для композитной роли целиком, как показано в п. 4 - 8 или назначьте для композитной роли те роли, для которых уже заданы необходимые атрибуты, для этого:
-
Перейдите на вкладку Associated roles.
-
Нажмите на кнопку Assign role.
-
На открывшейся форме Assign roles to <название роли> выберите роли, которые вы хотите включить в состав композитной:
-
Используйте фильтр Filter by realm roles, чтобы назначить роли уровня области безопасности.
-
Используйте фильтр Filter by clients, чтобы назначить роли уровня клинта.
-
Нажмите на кнопку Assign — выбранные роли будут назначены.
-
-
Назначение аттрибута для групп пользователей
-
На главной странице из выпадающего списка выберите область безопасности (realm).
-
В главном меню выберите пункт Groups.
-
На открывшейся форме Groups создайте (кнопка Create group) или выберите группу пользователей, для которой вы хотите назначить атрибут.
-
На форме настроечных параметров группы пользователей перейдите на вкладку Role mapping.
-
Нажмите на кнопку Assign role
-
На открывшейся форме Assign roles to <название роли> выберите роли, которые вы хотите включить в состав группы:
-
Используйте фильтр Filter by realm roles, чтобы назначить роли уровня области безопасности.
-
Используйте фильтр Filter by clients, чтобы назначить роли уровня клинта.
-
Нажмите на кнопку Assign — выбранные роли будут назначены.
-
-