↓ Перейти к основному содержимому
  1. Posts/
  2. Authentik/

Authentik - настройка Reputation Policy

··776 слов·4 минут· loading · loading · ·
Stilicho2011
Автор
Stilicho2011
Пишу о homelab, self-hosting, автоматизации и open-source решениях
Оглавление
Authentik - This article is part of a series.
Part : This Article
Tip

Если вам понравилась эта статья, вы можете стать спонсором на Boosty.

Предполагаю, что Authentik у вас уже установлен и настроен (см. статьи про общий обзор и первоначальную настройку). Политики обеспечивают настройку и гибкость при определении процесса входа и аутентификации пользователей.

По сути, политики решают, будет ли определенный этап применен в потоке, а также смогут ли конкретные пользователи вообще получить доступ к этому потоку.

Например, можно создать политику, которая для некоторых пользователей пропускает этап запроса MFA. Либо можно определить политику, разрешающую доступ к потоку входа только в том случае, если выполняются заданные условия. В данной статье я рассмотрю политику репутации.

Политика репутации
#

Authentik отслеживает недавние попытки входа для каждой пары «идентификатор (имя пользователя, почтовый адрес и т. д.) + IP-адрес клиента». Эти значения сохраняются в виде рейтингов (score). Каждая неудачная попытка входа уменьшает рейтинг на 1. Успешный вход увеличивает его на 1, а если рейтинг к этому моменту был отрицательным - сбрасывает в 0.

Рейтинг ограничен снизу и сверху: по умолчанию от -5 до 5 (меняется в System > Settings, параметры Reputation: lower limit и Reputation: upper limit). Записи о репутации не вечные - по умолчанию они живут сутки, после чего удаляются.

Эту политику можно использовать, например, для того, чтобы пользователи с низким рейтингом проходили CAPTCHA-проверку перед продолжением входа - как ее настроить, я разбирал в статье про Cloudflare Turnstile в Authentik. А можно поступить жестче и вообще не пускать их дальше - именно этот вариант разберем ниже.

Под учетной записью администратора переходим в меню Flows and Stages > Flows

Выбираем ваш основной идентификационный поток, в моем случае default-authentication-flow, затем переходим в раздел Policy/Groups/User Bindings

Раздел Policy/Group/User Bindings флоу default-authentication-flow

Далее переходим в раздел Create and Bind Policy, и выбираем в меню Reputation Policy.

Выбор типа политики - Reputation Policy

В следующем разделе задаем имя политики, которое имеет для вас смысл.

Дальше - очень важный момент, который нужно учитывать: что именно политика будет считать.

Если выбрать только check ip, политика суммирует рейтинг всех попыток входа с этого IP-адреса, вне зависимости от имени пользователя. Несколько неудачных попыток с одного IP - и вход с него будет запрещен для всех.

Если выбрать только check username, политика суммирует рейтинг всех попыток входа под этим именем пользователя, вне зависимости от IP-адреса, с которого он пытается авторизоваться. Запрещен будет вход именно этого пользователя.

Если выбрать check ip и check username одновременно, рейтинги складываются: учитываются и все попытки с этого IP-адреса, и все попытки под этим именем пользователя. На практике это значит, что если условный пользователь Ваня с конкретного IP-адреса несколько раз неудачно попытается войти, то от этого пострадает и условная Галя, которая будет входить с того же IP-адреса: Ванины неудачи попадут и в ее сумму. Спасти Галю может только ее собственная хорошая история успешных входов, если она перевесит Ванины ошибки.

Выбирайте тот вариант, который больше всего подходит под ваши нужды.

Threshold - это пороговое значение. Политика срабатывает (возвращает true), когда рейтинг равен порогу или ниже него. По умолчанию установлено значение -5.

Настройка Reputation Policy - Check IP и Threshold

В следующем разделе активируем параметр Negate the result.

Привязка Reputation Policy - Negate result и Order
Note

Коротко: Negate the result - это флаг инвертировать результат политики.

Проще говоря:

  • выключено → политика работает «как есть»
  • включено → результат политики переворачивается

На примере, допустим, политика возвращает:

  • true - условия выполнены
  • false - условия не выполнены

Если включить Negate the result:

  • true → станет false
  • false → станет true

Зачем это нужно в Authentik: это удобно, когда политика определяет «плохое» условие, а тебе нужно реагировать на «хорошее», или наоборот.

Reputation Policy как раз определяет «плохое» условие: она возвращает true, когда рейтинг упал до порога или ниже, то есть когда репутация плохая. Отсюда два сценария:

  • Показать CAPTCHA только подозрительным. Политика привязывается к этапу с CAPTCHA без Negate the result: этап выполняется, когда политика сработала, то есть когда репутация плохая. Документация Authentik советует в этом случае включать у привязки этапа Evaluate when stage is run, чтобы политика учитывала самые свежие попытки входа.
  • Не пускать подозрительных вообще. Политика привязывается ко всему потоку с Negate the result: поток доступен, когда политика не сработала, то есть когда репутация нормальная. Это ровно то, что мы делаем в этой статье.

Также указываем порядковый номер политики.


В разделе Flow overview можно посмотреть, как теперь работает поток.

Диаграмма потока default-authentication-flow с привязанной Reputation Policy

Если репутация у вас хорошая, вы сможете пройти все этапы аутентификации. Если же репутация ниже установленных значений (в моем случае - три неудачные попытки входа с одного IP-адреса), Authentik просто не пустит вас дальше.

Warning

При варианте «не пускать вообще» не заблокируйте самого себя: несколько опечаток в пароле - и вход с вашего же IP будет закрыт, пока рейтинг не вернется выше порога (записи о репутации по умолчанию живут сутки). Держите под рукой второй способ попасть в админку или запасную учетную запись, а сбросить рейтинг можно, удалив соответствующую запись в Reputation scores.

Посмотреть значения репутации можно в меню Customization → Reputation scores.

Таблица Reputation Scores в Customization
Authentik - This article is part of a series.
Part : This Article

Related

Cloudflare Turnstile в Authentik - настройка защиты формы входа

··862 слов·5 минут· loading · loading
Подробное руководство по настройке Cloudflare Turnstile - современной альтернативы CAPTCHA для защиты форм входа, регистрации и восстановления пароля без ухудшения пользовательского опыта.