Режим регистрации незавершенных попыток входа#
В Blitz Identity Provider все события фиксируются по факту окончания вызывавшего их процесса. Для большинства событий это нормально, так как процессы краткосрочные.
Среди всех регистрируемых событий есть важные события, связанные с входом пользователей. Если вход произошел успешно, то в самом конце процесса входа регистрируется событие безопасности, в котором указывается, кто, куда и когда вошел, какие методы аутентификации были задействованы, IP-адрес, UserAgent и много других деталей.
В зависимости от сделанных при внедрении настроек процесс входа может быть устроен сложно. Не всегда будет достаточно только ввести логин и пароль, и нужно будет дополнительно пройти подтверждение входа или в процессе входа пользователь будет взаимодействовать со вспомогательными приложениями (pipes), например, актуализировать контакт, настраивать Passkey или отвечать на вопрос, доверяет ли он устройству/браузеру. Если пользователь в какой-то момент этого процесса перестанет продолжать вход, то процесс входа не завершится, и как следствие, событие аудита о таком незавершенном входе не создастся. В зависимости от того, в какой момент это случится, это может быть проблемой безопасности. Например, если пользователь просто открыл страницу входа и не стал вводить логин и пароль, то фиксация такого события в журнале безопасности не представляет особого интереса. А вот если пользователь ввел правильные логин и пароль, но попал на экран подтверждения входа, который не стал проходить, то такое событие безопасности было бы хорошо зафиксировать. Возможно, злоумышленник перебирал пароль и смог успешно его подобрать, но не смог пройти проверку второго фактора аутентификации. Событие безопасности позволило бы узнать о такой ситуации, если бы оно было записано и анализировалось.
Для включения регистрации событий неуспешных (незавершенных) входов
необходимо в блоке настроек blitz.prod.local.idp.login
добавить
параметры:
postponeEnabled
– значениеtrue
, если механизм включен;postponeTtl
– время в секундах, после истечения которого регистрируется отложенное событие аудита, если вход не был завершен.
В случае если для обработки задач используется RabbitMQ, то для основной
очереди задач необходимо сделать дополнительную очередь с названием
<название основной очереди>-postpone
и задать для нее следующие
аргументы:
x-dead-letter-exchange = <используемый exchange>
x-dead-letter-routing-key = <основная очередь>
Так же для созданной очереди необходимо настроить binding
на используемый exchange
.