NOTEВ случае, если вы нашли данную статью полезной и считаете возможным отблагодарить автора, то это можно сделать по соответствующей ссылке на boosty
Как администратор в Authentik вы можете вручную создавать, удалять пользователей, генерировать им сложные пароли и создавать для них правила входа с помощью TOTP-кодов или WebAuthn-устройств. Безусловно, это рабочий механизм, но что если таких пользователей много? Или если даже мы говорим о каком-то домашнем использовании, вы просто хотите автоматизировать процесс таким образом, чтобы вы занимались только управленческой работой? В этой статье поговорим как настроить такую автоматизацию по регистрации и приглашения пользователей в Authentik.
TIPДля данной настройки, да и в принципе для правильной работы AUthentik в будущем, вы должны были настроить в файле переменных окружения
.envданные вашего почтового сервера, с которого будут приходить уведомления как вам, так и пользователям. Проверить корректность настройки почтового сервера можно простой командойdocker exec authentik_worker ak test_email ваша_почта@домен.com
NOTEНастройки приложения описанные в это статье актуальны на дату написания статьи
NOTEВидео гайд по ссылке ниже актуален на дату создания, но логика настройки не изменилась
Создание группы для обычных пользователей
В интерфейсе Authentik переходим в раздел Directory > Groups > New Group
В появившемся окне задаем название нашей группы. Так как это будут обычные пользователи, то мы не переключаем рычажок в положение Superuser Privileges

Жмем Create
Отвечая на незаданный вопрос “почему я так странно назвал группу: первое слово со строчной буквы, а потом заглавная?”, поясню, что дефолтная группа для админов именно с таким написанием authentik Admins. Соблюдаю стиль.
Создание этапов и потоков
Этап Email Stage
Переходим во Flows and Stages > Stages > Create
В появившемся меню выбираем Email Stage

Жмем Next и в следующем окне задаем необходимые параметры: задаем название этапа, тему письма и шаблон, который будет использоваться. Жмем Finish

Создание потока для приглашений
Переходим во Flows > Create
Описываем и задаем необходимые параметры примерно как на скриншоте ниже. Я активировал compatibility mode для лучшей работы с менеджерами паролей. В графе Authentication я не установил каких-то обязательных параметров. Сделал я это намеренно, в будущем я задам жесткое требование для всех пользователей без исключения создавать двухфакторную аутентификацию.

Теперь переходим в наш созданный поток Enrollment > Stage Bindings > Bind existing stage (как вы, наверное, поняли, создавать этапы можно и из этого меню, нажав Create and Bind Stage, но мне кажется, мой вариант более наглядный).
В появившемся меню заполняем по образу и подобию того, как у меня на скриншоте. Выбираем уже существующий этап default-source-enrollment-prompt, задаем порядок исполнения этого этапа.
NOTEОбратите внимание, что у меня активирован рычажок напротив
evaluate when flow is planned. Если разбираетесь в вопросе, можете выбрать и другой пункт меню.

Теперь надо внести изменения во вновь созданный этап. Жмем Edit Stage и выбираем необходимые нам поля с данными, которые, в свою очередь, должны будут заполнять новые юзеры при регистрации.
Выбираем следующие значения name email password repeat password. Значение username уже выбрано по умолчанию. В разделе Validation Policy выбираем созданное нами password complexity (как задавать значения сложности пароля можно прочитать в статье, посвященной восстановлению пароля). Жмем Update

Теперь создаем новую привязку stage к flow, опять жмем Bind existing stage > default-source-enrollment-write, задаем порядок исполнения, жмем Create.

Как и в предыдущий раз, внесем изменения в созданный этап > Edit Stage
Активируем опцию Create users as inactive. Это нужно для того, чтобы после того, как новые пользователи внесут свои данные и зарегистрируются в системе, их аккаунт будет неактивен, пока они не подтвердят свое действие по email.
В качестве Group выбираем созданную группу authentik Users. Обязательно в разделе User type выбираем internal

Еще раз жмем Bind existing stage, выбираем email-account-confirmation, который мы с вами создавали ранее, задаем порядок исполнения, жмем Create.

Можно проверить настройки этого этапа.
На самом деле редактировать тут особо нечего, просто проверяем, что у нас активирована функция Activate pending users on success.
В случае, если у вас не настроена почта с помощью переменных окружения, то деактивируйте функцию по использованию global settings. У вас появятся новые поля, которые вы должны будете заполнить соответствующими значениями, которые вы получили у вашего email-провайдера.

Настройка default-authentication-flow
Переходим во Flows, выбираем наш поток аутентификации, в моем случае default-authentication-flow, переходим в меню Stage Bindings и вносим изменения в default-authentication-identification этап. Скроллим в самый низ, в меню Flow Settings в разделе Enrollment Flow выбираем вновь созданный поток и жмем Update.

Выходим из нашего аккаунта и проверяем меню входа (безусловно, все это нужно делать в режиме инкогнито, как минимум необходимо почистить cookies браузера).
Видим, что у нас появилось новое меню по регистрации нового пользователя.

Можно проверить работоспособность меню: пусть новый (тестовый) пользователь (в вашем лице) зарегистрируется, придет почта с подтверждением, кликаете на ссылку в почтовом сообщении и дальнейшие действия интуитивно понятно. Если вы все сделали правильно, а автор статьи не напортачил (как у него бывает), то у вас появился новый пользователь, который сам создал аккаунт, пароль по заданным вами параметрам и политикам, и теперь он в группе обычных пользователей.
Настройка приглашений пользователей в Authentik
Мы с вами создали возможность новым пользователям самостоятельно регистрироваться в нашем Authentik. Но это слишком большая вольница, когда любой залетный может просто так зайти на сайт с Authentik и зарегистрироваться там. Нам же это не надо? Ведь так? Мы хотим, чтобы только избранные пользователи могли зарегистрироваться и только по приглашению. Ну или устроим массовую рассылку приглашений, но в любом случае зарегистрироваться сможет только то лицо, которому мы направили приглашение. Давайте именно такой настройкой и займемся.
User Write Stage
Идем в Stages, создаем новый этап User Write Stage (у меня из-за бага с переводом в версии приложения 2025.10.3, который не полностью отключен, данный этап называется Этап записи пользователя).

Жмем Next. Задаем необходимые параметры: название этапа и его параметры, а также в какую группу будут определены новые юзеры. Поскольку предполагается, что мы знаем, кто у нас регистрируется, то можно деактивировать меню Create users as inactive.

Invitation Stage
Опять создаем новый этап, но в этот раз Invitation Stage (у меня он называется Этап приглашения).

Жмем Next, задаем название этапу. В случае если у вас активировано меню Continue flow without invitation его необходимо деактивировать.

Дальше идем во Flows > Create и задаем необходимые параметры. Как и раньше, я активирую режим совместимости с менеджерами паролей.

Теперь переходим в enrollment invitation flow, который мы только что создали, и жмем Bind existing stage.
Тут мы с вами выбираем созданный этап, задаем ему порядок исполнения и выбираем Evaluate when flow is planned вместо Evaluate when stage is run.

Еще раз жмем Bind existing stage и выбираем default-source-enrollment-prompt, задаем ему порядок исполнения и выбираем Evaluate when flow is planned вместо Evaluate when stage is run.

Теперь редактируем этап default-source-enrollment-prompt и проверяем, что у нас все как на скриншоте. В принципе, тут все аналогично настройкам, которые описаны в начале этой статьи.

Еще раз жмем Bind existing stage и выбираем enrollment-invitation-write, задаем ему порядок исполнения и выбираем Evaluate when flow is planned вместо Evaluate when stage is run.

Последний раз жмем Bind existing stage и выбираем default-source-enrollment-login, задаем ему порядок исполнения и выбираем Evaluate when flow is planned вместо Evaluate when stage is run.

Создание приглашений
Теперь идем в Directory > Invitations > Create
В появившемся меню задаем название нашего приглашения, указываем время действия приглашения (можно сделать его фактически бессрочным), а также решаем, будет оно разовое — single use — или для многократного использования.

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

Теперь человек, который получит такую ссылку-приглашение, перейдя по ней, попадет в меню регистрации нового пользователя, как и в предыдущем пункте.
Прикрываем лавочку по самостоятельной регистрации пользователей
Свобода — это хорошо, но в меру. Предположим, мы зарегистрировали всех кого надо и больше никого не ждем. Сейчас мы строго-настрого запретим регистрироваться новым пользователям без нашего четкого контроля.
Идем в Stages > Create и создаем новый этап Deny Stage.

Жмем Next и задаем название нашему этапу и пишем сообщение, которое увидит незваный гость, когда его посетит шальная мысль попробовать зарегистрироваться в нашем Authentik.

Переходим во Flows > main-page-enrollment, переходим в Bind existing stage.
Выбираем наш Deny Stage. В качестве порядкового номера надо выбрать любой, но с обазательным условием чтобы этот этап обрабатывался первым, в моем случае это 0, и выбираем Evaluate when flow is planned вместо Evaluate when stage is run, после чего нажимаем Create.

Теперь в режиме инкогнито попробуем зарегистрироваться в нашем Authentik, и если мы с вами все сделали правильно, то пользователь (которого мы не ждали) получит не самое приятное для него сообщение.

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



