Перейти к основному содержимому

Настройка двухфакторной аутентификации Keycloak

Общая информация

В статье описывается настройка Keycloak для доступа к корпоративным приложениям.

Возможные способы аутентификации:

  • Мобильное приложение MultiFactor
  • Telegram
  • СМС
  • Биометрия
  • Аппаратные OTP токены
  • Приложения OTP: Google Authenticator или Яндекс.Ключ

Схема работы

  1. Пользователь открывает корпоративное приложение;
  2. Keycloak запрашивает логин первый фактор аутентификации: логин и пароль, проверяет корректность указанных данных и, если данные верны, переходит ко второму этапу аутентификации;
  3. На втором этапе открывается окно проверки второго фактора Мультифактор, в котором пользователю предлагается подтвердить доступ;
  4. Пользователь подтверждает второй фактор доступа и переходит к работе с приложением.

Для настройки второго фактора аутентификации вам потребуется установить и настроить на сервере Keycloak компонент multifactor-keycloak-plugin. Компонент разработан и поддерживается компанией МУЛЬТИФАКТОР, распространяется бесплатно вместе с исходным кодом. Актуальная версия находится на GitHub: код и сборка.

Лицензия

Обратите внимание на лицензию. Она не дает вам право вносить изменения в исходный код Компонента и создавать производные продукты на его основе. Исходный код предоставляется в ознакомительных целях.

Требования для установки

Компоненту необходим доступ к хосту api.multifactor.ru по TCP порту 443 (TLS) напрямую или через HTTP прокси;

Настройка Мультифактора

  1. В системе управления Мультифактором добавьте новый ресурс «Веб-сайт», после чего Вам будут доступны ключи API Key и API Secret. Используйте формат токена доступа JwtHS256.

Установка Keycloak plugin

Загрузите файл сборки на сервер Keycloak и поместите в каталог /providers

$ cp <keycloack dir>/target/keycloak-multifactor-spi-jar-with-dependencies.jar <keycloack dir>/providers

В терминале откройте каталог keycloak-23.0.1

В Linux введите следующую команду:

# bin/kc.sh start-dev

В Windows введите следующую команду:

# bin\kc.bat start-dev

В дальнейшем для запуска в производственном режиме выполните следующую команду:

# bin/kc.[sh|bat] start

Настройка Keycloak

  1. Внесите изменения keycloak.version в pom.xml в соответствии с вашей конкретной версией Keycloak (в настоящее время используется версия 23.0.1), затем соберите компонент:
$ mvn clean install
  1. В разделе Realm Settings -> Security Defenses -> Content-Security-Policy добавьте MultiFactor в качестве надежного источника:
frame-src https://*.multifactor.ru/ 'self';
  1. В разделе Authentication -> Flow выберите Browser и выполните Action -> Duplicate;
  2. В разделе Authentication -> Flow выберите Copy of browser -> Add step -> Copy of browser forms и добавьте MultiFactor из списка.

⚠️ Обратите внимание: «Multifactor» должен быть после Username Password Form;

В столбце Requirement для Multifactor укажите REQUIRED.

  1. Перейдите в Настройки для «Multifactor» и введите следующие значения:
  • API key: значение из ранее созданного ресурса;
  • API secret: значение из ранее созданного ресурса;
  • API URL: https://api.multifactor.ru.
  1. В настройках вашего клиента Keycloak в разделе Advanced -> Authentication Flow Overrides привяжите Copy of browser для Browser Flow. Также вы можете привязать новый Flow глобально: в разделе Authentication -> Flow перейдите в Copy of browser и нажмите Action -> Bind flow.

Смотрите также