Настройка аутентификации по паролю и OTP
По умолчанию, настройки потока (Flow) аутентификации в Keycloak позволяют входить в PAM и на ресурс только по паролю. Но вы можете настроить аутентификацию в PAM и на целевой системе как по паролю доменной учетной записи, так и по OTP.
Для этого в Keycloak нужно настроить потоки для авторизации в PAM и на ресурсе, настроить клиент control. После настройки в Keycloak, для пользователей нужно включить аутентификацию по TOTP в PAM.
Предварительная настройка
Перед тем, как настраивать новый способ аутентификации в PAM и на ресурсе проверьте, что в списке Flow окружения PAM в Keycloak есть потоки browser и direct grant.
Шаг 1. Настройка потока browser
В Keycloak откройте окружение pam.
Перейдите в раздел Authentication → Flows
Откройте поток browser и проверьте настройки:
Cookie — Alternative
Kerboros — Disabled
Identity Provider Redirector — Alternative
forms — Alternative
Username Password Form — Required
Browser — Conditional OTP— Conditional
Condition — user configured — Required
OTP Form— Required.
Поток должен выглядеть как на примере:

Поток настроен. Теперь нужно настроить поток аутентификации на ресурсе.
Шаг 2. Настройка потока direct grant
В Keycloak перейдите в раздел Authentication → Flows
Откройте поток direct grant и проверьте настройки:
Username Validation — Required
Password — Required
Direct Grant — Conditional OTP— Conditional
Condition — user configured — Required
OTP Form— Required.
Поток должен выглядеть как на примере:

Поток настроен. Проверьте настройки клиента control.
Шаг 3. Проверка настроек клиента control
В Keycloak перейдите в Clients → Clients list.
Найдите и откройте клиент control.
Перейдите на вкладку Advanced в блок Authentication flow overrides.
Проверьте, что:
Browser Flow — пусто (Choose).
Direct Grant Flow — пусто (Choose).
Если это не так, нажмите Revert и Save.
Настройки в Keycloak выполнены. Теперь нужно указать ссылку для привязки устройства в PAM и включить TOTP пользователю.
Шаг 4. Настройка привязки устройства
Чтобы при первой аутентификации в PAM или входе на ресурс пользователь мог привязать свое устройство двухфакторной аутентификации, укажите ссылку на форму привязки.
После этого, включите TOTP для тестового пользователя PAM.
В интерфейсе PAM перейдите в раздел Настройки → Основные настройки → Аутентификация.
В поле URL для регистрации устройства укажите адрес, по которому развернут PAM.
Нажмите Сохранить.
Перейдите в раздел Пользователи и группы → Пользователи и найдите тестового пользователя
Нажмите и выберите Включить TOTP.
В окне подтверждения нажмите Принять — статус TOTP изменится на Ожидает настройки.
Настройка выполнена. Проверьте, что все работает корректно: аутентифицируйтесь под тестовым пользователем в PAM, привяжите устройство и войдите на ресурс используя второй фактор аутентификации.
После проверки, включите TOTP остальным пользователям PAM и отключите TOTP тестовому пользователю, если это необходимо.