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

Агент Keycloak

Keycloak — это решение класса Identity and Access Manager (IAM) с открытым исходным кодом, которое поддерживает такие протоколы интеграции, как SAML (Security Assertion Markup Language) и OIDC (OpenID Connect). С помощью Keycloak можно реализовать точку единого входа, что упрощает вход в доверенные веб-сервисы.

Агент поддерживает работу с Keycloak версий 22–26.

Взаимодействие между агентом Keycloak и сервером аутентификации осуществляется по протоколу HTTPS. Обмен данными при выполнении двухфакторной аутентификации происходит следующим образом:

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

Чтобы внедрить многофакторную аутентификацию в сервисе Keycloak с помощью сервиса MFA, необходимо установить и настроить агент в консоли администрирования Keycloak, где вы сможете настроить как сам модуль, так и критерии применения многофакторной аутентификации.

Настройка узлов аутентификации

Чтобы сервис MFA мог обрабатывать запросы на аутентификацию от пользователей в сервисе Keycloak, добавьте агент в качестве узла аутентификации в консоли администрирования.

Для этого:

  1. Войдите в консоль с учетными данными оператора виртуального сервера.
  2. Выберите сервер на вкладке Виртуальные серверы.
  3. Выберите вкладку второго ряда Настройки.
  4. Раскройте панель Узлы аутентификации.
  5. Нажмите Добавить или Изменить.
  6. Укажите имя узла и его IP-адрес.
Подсказка

Если вы используете несколько Realm, создайте уникальный GUID для каждого виртуального сервера, который будет однозначно сопоставлять Realm и сервер. Чтобы создать GUID, в консоли администрирования настройте Keycloak как общий узел аутентификации без разделителя и для каждого виртуального сервера создайте собственный уникальный GUID.

Настройка в Keycloak

Чтобы установить агент:

  1. Скопируйте файл с агентом (файл с расширением JAR) из дистрибутива KEYCLOAK в каталог provider, например \$\{kc.home.dir\}/providers.
  2. Выполните сборку через команду:
\$\{kc.home.dir\}/bin/kc.sh build 
  1. Перезапустите сервис Keycloak:
systemctl restart keycloak
  1. Авторизуйтесь в консоли администрирования Keycloak, перейдите к нужному Realm.

В консоли администрирования Keycloak:

  1. Перейдите к узлу Configure→Authentication, в строке нужного flow нажмите и выберите Duplicate.
  2. В появившемся окне задайте имя и описание.
  3. На странице созданного flow нажмите Add execution, в поисковой строке укажите MFASOFT, выберите из списка MFASOFT, нажмите Add.
  4. Перейдите вниз списка страницы, в строке с элементом MFASOFT в выпадающем списке выберите тип Required.
  5. Нажмите в строке с элементом MFASOFT и укажите параметры, необходимые для взаимодействия с сервером аутентификации.
Описание параметров
ПараметрОписание
AliasИмя элемента, например Indeed MFA
URI sas address 1Адрес сервера аутентификации — https://mfa.indeed-cloud.ru
Timeout for the requestВремя ожидания ответа от сервера аутентификации в секундах
Verify_sslПроверка SSL-сертификата при подключении к серверу аутентификации
Forward_IPПроброс IP-адреса. В случае, если для хоста настроена маршрутизация через NAT, то при запросе IP-адрес подменяется. Чтобы сохранить значение IP-адреса хоста, укажите значение 1.
Auto_challengeАвтоматически вызывать запрос на аутентификацию при появлении окна для ввода второго фактора
Select type tokenТип токена для Auto challenge
GUID Realm SASИдентификатор Realm
Use emailВ качестве логина на сервер аутентификации отправляется email пользователя, чтобы реализовать функции общего узла аутентификации на стороне сервиса MFA.
  1. После сохранения параметров вернитесь на узел Authentication, в строке с элементом MFASOFT нажмите и выберите операцию Bind flow. В открывшемся окне выберите Browse flow.

  2. Далее перейдите к узлу Manage→Clients, выберите клиент из списка. В его свойствах выберите вкладку Advanced. В боковом меню справа в разделе Authentication flow overrides для параметра Browser Flow выберите из списка элемент MFASOFT и сохраните изменения.

По завершении настроек можно выполнить проверку двухфакторной аутентификации на клиенте Keycloak.

Обновление агента Keycloak

Чтобы обновить агент KeyClock, выполните следующие операции:

  1. Удалите ранее установленный файл агента в каталоге $\$\{$ kc.home.dir\}/providers.
  2. Скопируйте обновленный файл с агентом.
  3. Выполните сборку через команду:
$\$\{$ kc.home.dir\}/bin/kc.sh build
  1. Перезапустите сервис Keycloak:
systemctl restart keycloak

После обновления все параметры конфигурации останутся прежними.