Агент Keycloak
Keycloak — это решение класса Identity and Access Manager (IAM) с открытым исходным кодом, которое поддерживает такие протоколы интеграции, как SAML (Security Assertion Markup Language) и OIDC (OpenID Connect). С помощью Keycloak можно реализовать точку единого входа, что упрощает вход в доверенные веб-сервисы.
Агент поддерживает работу с Keycloak версий 22–26.
Взаимодействие между агентом Keycloak и сервером аутентификации осуществляется по протоколу HTTPS. Обмен данными при выполнении двухфакторной аутентификации происходит следующим образом:
- Пользователь делает запрос на доступ к целевому ресурсу. Ресурс переправляет пользователя на страницу Keycloak для прохождения аутентификации.
- Пользователь проходит базовую аутентификацию по логину и паролю. Если правилами Keycloak установлено требование двухфакторной аутентификации, сервис Keycloak отображает окно для прохождения дополнительной проверки.
- Выполняется проверка второго фактора аутентификации, на основании решения сервера аутентификации сервис Keycloak принимает решение об аутентификации в целевом ресурсе.
- После успешной аутентификации пользователь перенаправляется со страницы Keycloak на стартовую страницу ресурса.
Чтобы внедрить многофакторную аутентификацию в сервисе Keycloak с помощью сервиса MFA, необходимо установить и настроить агент в консоли администрирования Keycloak, где вы сможете настроить как сам модуль, так и критерии применения многофакторной аутентификации.
Настройка узлов аутентификации
Чтобы сервис MFA мог обрабатывать запросы на аутентификацию от пользователей в сервисе Keycloak, добавьте агент в качестве узла аутентификации в консоли администрирования.
Для этого:
- Войдите в консоль с учетными данными оператора виртуального сервера.
- Выберите сервер на вкладке Виртуальные серверы.
- Выберите вкладку второго ряда Настройки.
- Раскройте панель Узлы аутентификации.
- Нажмите Добавить или Изменить.
- Укажите имя узла и его IP-адрес.
Если вы используете несколько Realm, создайте уникальный GUID для каждого виртуального сервера, который будет однозначно сопоставлять Realm и сервер. Чтобы создать GUID, в консоли администрирования настройте Keycloak как общий узел аутентификации без разделителя и для каждого виртуального сервера создайте собственный уникальный GUID.
Настройка в Keycloak
Чтобы установить агент:
- Скопируйте файл с агентом (файл с расширением JAR) из дистрибутива KEYCLOAK в каталог provider, например
\$\{kc.home.dir\}/providers. - Выполните сборку через команду:
\$\{kc.home.dir\}/bin/kc.sh build
- Перезапустите сервис Keycloak:
systemctl restart keycloak
- Авторизуйтесь в консоли администрирования Keycloak, перейдите к нужному Realm.
В консоли администрирования Keycloak:
- Перейдите к узлу Configure→Authentication, в строке нужного flow нажмите
и выберите Duplicate.
- В появившемся окне задайте имя и описание.
- На странице созданного flow нажмите Add execution, в поисковой строке укажите MFASOFT, выберите из списка MFASOFT, нажмите Add.
- Перейдите вниз списка страницы, в строке с элементом MFASOFT в выпадающем списке выберите тип Required.
- Нажмите
в строке с элементом 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. |
После сохранения параметров вернитесь на узел Authentication, в строке с элементом MFASOFT нажмите
и выберите операцию Bind flow. В открывшемся окне выберите Browse flow.
Далее перейдите к узлу Manage→Clients, выберите клиент из списка. В его свойствах выберите вкладку Advanced. В боковом меню справа в разделе Authentication flow overrides для параметра Browser Flow выберите из списка элемент MFASOFT и сохраните изменения.
По завершении настроек можно выполнить проверку двухфакторной аутентификации на клиенте Keycloak.
Обновление агента Keycloak
Чтобы обновить агент KeyClock, выполните следующие операции:
- Удалите ранее установленный файл агента в каталоге
$\$\{$ kc.home.dir\}/providers. - Скопируйте обновленный файл с агентом.
- Выполните сборку через команду:
$\$\{$ kc.home.dir\}/bin/kc.sh build
- Перезапустите сервис Keycloak:
systemctl restart keycloak
После обновления все параметры конфигурации останутся прежними.