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

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

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

Обновление от 10.10.2026: в России этот способ больше не работает. Виджет Turnstile загружается с серверов Cloudflare (challenges.cloudflare.com), а доступ к ним у российских провайдеров ограничен. У пользователя из России виджет просто не появляется, проверку пройти невозможно - и форма входа дальше не пускает. То есть вместо защиты от ботов вы получите закрытый вход для самих себя. Если ваши пользователи (или вы сами) заходят в Authentik из России, включать Turnstile не стоит. Что можно использовать вместо него:

  • Reputation Policy - встроенная защита от подбора пароля, никуда наружу не ходит;
  • Cap - CAPTCHA, которую можно развернуть на своем сервере; Authentik поддерживает ее в том же Captcha Stage (см. документацию).

Статья остается актуальной для тех, у кого пользователи находятся за пределами России.

Предполагаю, что Authentik у вас уже установлен и настроен (см. статью про первоначальную настройку, а также про OIDC, OAuth2 и Proxy Provider, если защищаете стороннее приложение). Cloudflare Turnstile - это современная альтернатива CAPTCHA, которая позволяет защищать формы аутентификации от ботов и атак перебора, не заставляя пользователей разгадывать картинки или вводить символы.

Tip

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

Note

Cloudflare Turnstile это аналог технологии Captcha, но для пользователей Cloudflare. Если вам нужно настроить именно Captcha, - более подробно можете ознакомиться с настройкой на странице официальной документации

Note

С 1 июля 2025 года в России вступили в силу изменения в законодательстве о персональных данных (ФЗ №152), согласно которым использование Google reCAPTCHA или их аналогов на сайтах, передающих данные за границу, становится нарушением. Необходимо учитывать это ограничение, если вы собираетесь использовать данный сервис в предпринимательской деятельности.


Зачем использовать Cloudflare Turnstile в Authentik
#

По умолчанию Authentik уже обладает неплохой защитой от:

  • brute-force атак;
  • username enumeration;
  • автоматических попыток входа.

Однако при публикации IdP в интернет этого часто бывает недостаточно.

Cloudflare Turnstile позволяет:

  • отсекать ботов еще до ввода пароля;
  • снизить нагрузку на Authentik;
  • улучшить пользовательский опыт по сравнению с классическими CAPTCHA;
  • повысить общий уровень безопасности без усложнения логики flows.

То есть кроме тех способов аутентификации и авторизации, которые мы с вами уже настроили в предыдущих статьях, добавляется еще один способ проверки.

Визуально это выглядит как-то так

Экран входа Authentik с виджетом Cloudflare Turnstile

Требования
#

Перед началом убедитесь, что у вас есть аккаунт в Cloudflare - бесплатного достаточно.

Сам домен, на котором доступен Authentik, переносить в Cloudflare не обязательно: Turnstile работает на любом сайте, имя домена просто указывается при создании виджета. Исключение - режим Pre-Clearance, о нем ниже.


Создание Turnstile в Cloudflare
#

  1. Перейдите в панель Cloudflare.
  2. Откройте раздел Security > Turnstile (Cloudflare периодически переносит пункты меню между разделами - на момент написания статьи это было “Protect & Connect”, сейчас переехало в “Security”. Если снова не найдете - ищите просто “Turnstile” через поиск в дашборде).
  3. Нажмите Add Widget (в части версий интерфейса кнопка уже называется Add site).
  4. Укажите:
    • Widget name - произвольное имя (например authentik-login);
    • Add Hostname > Domains - домен, на котором работает Authentik;
    • Widget mode - Managed (рекомендуется для дома).
    • Pre-Clearance Mode - Yes
    • Level of pre-clearance - interactive
Note

Последние два пункта меняйте так, как вы считаете нужным, в зависимости от ваших потребностей и паранойи. Pre-Clearance имеет смысл только тогда, когда сам домен обслуживается Cloudflare и там же настроены правила защиты. Если домен у вас не в Cloudflare - ставьте No.

Форма создания виджета Turnstile в Cloudflare

После создания вы получите:

  • Site Key
  • Secret Key

Можете их скопировать, но Cloudflare заботливо указывает, что вы всегда сможете повторно получить к ним доступ.

Site Key и Secret Key виджета Turnstile в Cloudflare

Создание Captcha Stage в Authentik
#

Настройка этапа в Authentik
#

Теперь переходим к настройке в Authentik.

  1. Откройте админ-панель Authentik.
  2. Перейдите в Flows and Stages → Stages.
  3. Нажмите Create.
  4. Выберите Captcha Stage.
Выбор типа этапа Captcha Stage в Authentik
  1. Задайте имя этапу.
  2. В типе проверки выберите Cloudflare Turnstile.
  3. В разделе Public key и Private Key укажите значения, которые мы получили у Cloudflare.
  4. Галку Interactive можно оставить включенной, если Turnstile у вас сконфигурирован как Invisible или Managed.
    Настройка Public key, Private key и Interactive в Captcha Stage

В разделе Advanced Settings ничего не трогаем. В актуальной на дату написания статьи версии Authentik корректные значения уже автоматом прописаны. Раньше нужно было их вставлять руками. Более подробно можно ознакомиться на сайте с официальной документацией

Advanced Settings этапа Captcha Stage в Authentik
  1. Finish

Интеграция этапа Turnstile в основной поток аутентификации и авторизации
#

  1. Откройте админ-панель Authentik.
  2. Перейдите в Flows and Stages → Flows → default-authentication-flow.
  3. Выберите Stage Bindings → Bind Existing Stage
  4. Выбираем вновь созданный этап.
  5. Выбираем порядок обработки этапа Turnstile - после этапа идентификации (ввода логина), но до этапа ввода пароля.
  6. Выберите evaluate when flow is planned.
  7. Create
Привязка этапа Turnstile к default-authentication-flow

Теперь мы интегрировали этап “капчи” при аутентификации в Authentik.

Этап Turnstile в списке Stage Bindings флоу аутентификации
Note

В таком виде капча показывается всем пользователям при каждом входе. Если хочется показывать ее только подозрительным - например, после нескольких неудачных попыток входа с одного IP, - привяжите к этому этапу Reputation Policy (без Negate the result) и переключите привязку этапа на evaluate when stage is run. Как работает такая политика, я разбирал в статье Authentik - настройка Reputation Policy.

Warning

Проверяйте вход в отдельном окне инкогнито, не закрывая сессию администратора. Если виджет не загрузится, из формы входа вы уже не попадете в админку, чтобы отключить этап. На такой случай есть аварийный вход: команда docker exec authentik_server ak create_recovery_key 10 <имя_администратора> выдаст ссылку, которая действует 10 минут и впускает под указанным пользователем в обход формы входа. После этого этап Turnstile можно отвязать от потока.

Tip

В панели Turnstile на сайте Cloudflare вы сможете посмотреть аналитику по работе этого виджета

Аналитика виджета Turnstile в панели Cloudflare
Графики аналитики Turnstile в Cloudflare
Authentik - This article is part of a series.
Part : This Article

Related

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

··776 слов·4 минут· loading · loading
Пошаговая настройка Reputation Policy в Authentik для ограничения доступа по репутации IP-адреса и имени пользователя, с разбором типовых сценариев защиты.