CAPTCHA#

Внимание

CAPTCHA должна быть предварительно сконфигурирована.

CAPTCHA может отображаться пользователю при регистрации и восстановлении доступа, а также при входе по паролю, коду из SMS и через внешнего поставщика. Для этого добавьте секцию captcha в файл конфигурации /usr/share/identityblitz/blitz-config/blitz.conf:

  • Вход по паролю: blitz.prod.local.idp.login.methods.sms.captcha,

  • Вход по коду из SMS: blitz.prod.local.idp.login.methods.password.captcha,

  • Вход через внешнего поставщика: blitz.prod.local.idp.externalIdps.captcha,

  • Регистрация blitz.prod.local.idp.provisioning.registration.captcha,

  • Восстановление доступа: blitz.prod.local.idp.provisioning.recovery.captcha.

Пример секции captcha для активации Yandex Smart Captcha:

"captcha" : {
    "enabled" : true,
    "mode" : {
        "type" : "always_on"
     },
    "sysname" : "yandexSmartCaptcha"
},

Параметры секции:

  • sysname - системное имя CAPTCHA.

  • enabled – признак того, включена ли CAPTCHA или нет (true/false);

  • mode – режим отображения CAPTCHA, предусмотрены следующие режимы:

    • always_on – CAPTCHA отображается всегда;

    • on_header – CAPTCHA отображается, если в запросе есть заголовок, указанный в настройках CAPTCHA.

      Примечание

      Актуально только для внешней CAPTCHA.

    • by_brute_force_protection – CAPTCHA отображается, если Blitz Identity Provider обнаружил подбор пароля к конкретной учетной записи или массовый подбор пароля ко всем учетным записям.

      Примечание

      Актуально только для метода входа по паролю.

      Дополнительные настройки при использовании by_brute_force_protection

      При использовании режима by_brute_force_protection требуется дополнительно создать в блоке blitz.prod.local.idp.password блок настроек bruteForceProtection со следующими настройками:

      • disabled – выключена или нет защита (true/false);

      • captcha – использовать ли тест CAPTCHA при срабатывании защиты (true/false);

      • delay – время задержки входа в секундах (применяется, если выключено использование CAPTCHA);

      • блок system в настройке thresholds – если необходима защита на уровне системы (защита от перебора на разные логины). Задаются настройки:

        • minAttemptsToActivate – минимальное кол-во прошедших входов для включения механизма защиты на основе статистики системы (по умолчанию 100 входов);

        • timeWindowInMin – временное окно сбора статистики по соотношению успешных и неуспешных входов в минутах, должно быть четным (по умолчанию 100 минут);

        • failedAttemptsPercent, настройка turnOff – порог выключения автоматической защиты, в процентах;

        • failedAttemptsPercent, настройка turnOn – порог включения автоматической защиты, в процентах.

        • forced – включить принудительно защиту для всех (true/false).

      • блок system в настройке thresholds – если необходима защита на уровне отдельных пользователей (защита от подбора пароля на конкретного пользователя). Задаются настройки:

        • ttlInSec – период, за который накапливается счетчик неуспешных входов по пользователю в секундах (по умолчанию 3600 секунд);

        • failedAttempts, настройка turnOn – количество ошибочных входов за период, после которого для учетной записи включится защита.

      Пример настроек блока bruteForceProtection (включена только защита на уровне пользователя):

      "bruteForceProtection" : {
          "captcha" : true,
          "disabled" : false,
          "thresholds" : {
              "user" : {
                  "failedAttempts" : {
                      "turnOn" : 5
                  },
                  "ttlInSec" : 3600
              }
          }
      }
      

      Пример настроек bruteForceProtection (включена защита на уровне пользователя и на уровне системы):

      "bruteForceProtection" : {
          "disabled": false,
          "captcha" : true,
          "thresholds" : {
              "system" : {
                  "minAttemptsToActivate": 1000,
                  "timeWindowInMin": 180,
                  "failedAttemptsPercent" : {
                      "turnOff" : 20,
                      "turnOn" : 30
                  },
                  "forced" : false
              },
              "user" : {
                  "ttlInSec": 3600,
                  "failedAttempts" : {
                      "turnOn" : 5
                  }
              }
          }
      }