Настройка Keycloak для аутентификации через Indeed AM SAML IDP
Автор Oleg Akifyev, Last modified by Vladislav Fomichev на 13 ноября 2023 04:15 PM

Рассмотрим пример настройки аутентификации в Keycloak с использованием модуля Indeed AM SAML IDP.

Для корректной работы нам понадобится:

1. Установка Keycloak

Скачиваем актуальный дистрибутив Keycloak с официального сайта:


Рисунок 1. Страница загрузки дистрибутива

Распаковываем содержимое архива и запускаем сервер Keycloak. Для этого с помощью командной строки запускаем файл standalone.bat, расположенный в каталоге ..\bin:


Рисунок 2. Запуск сервера Keycloak

При успешном запуске сервера в командной строке появится строка Keycloak started:


Рисунок 3. Сервера Keycloak запущен

При возникновении ошибки JAVA_HOME is not set. Unexpected results may occur необходимо убедиться установлена ли Java 8 JDK (скачать).

! Обратите внимание, что сервер будет работать пока запущен терминал.

Теперь нам необходимо создать администратора Keycloak. Для этого в браузере открываем http://localhost:8080/auth/ и в Administration Console создаем администратора системы:


Рисунок 4. Создаем администратора системы

После создания администратора нам необходимо указать IP адрес сервера, а также указать его DNS имя в формате http://<полное_DNS_имя_сервера_Keycloak>:8080/auth

Для этого в командной строке останавливаем сервер командой Ctrl+C и соглашаемся на остановку командой Y.

Далее открываем на редактирование файл standalone.xml расположенный в каталоге ..\standalone\configuration. В данном файле нам необходимо изменить следующие строки:

<property name="frontendUrl" value="${keycloak.frontendUrl:}"/>
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

Пример готового файла:


Рисунок 5. Задаем IP адрес сервера и его DNS имя

После правки конфигурационного файла снова запускаем ..\bin\standalone.bat. Сервер будет доступен по адресу http://<полное_DNS_имя_сервера_Keycloak>:8080/auth/

2. Настройка SAML в Keycloak

В консоли управления Keycloak переходим на вкладку Identity Providers и в выпадающем меню выбираем SAML v2.0:


Рисунок 6. Добавляем SAML v2.0 провайдер

В настройках SAML v2.0 провайдера указываем следующие значения:

Пример настройки:


Рисунок 7. Настройка SAML v2.0 провайдера

3. Настройка Indeed AM SAML IDP

Для настройки расширения Indeed AM SAML IDP требуется внести изменения в конфигурационные файлы Web.config и saml.config, расположенные в каталоге C:\inetpub\wwwroot\am\idp.

Перед изменением конфигурационных файлов необходимо узнать имя сервис провайдера Keycloak. Для этого в консоли управления Keycloak заходим в настройки, настроенного ранее, saml провайдера и открываем вкладку Export. На данной вкладке нам необходимо запомнить значение параметра entityID:


Рисунок 8. Запоминаем значение entityID

Приступаем к настройке конфигурационных файлов:

  • Для saml.config добавляем описание сервис провайдера Keycloak перед закрывающимся тегом </SAMLConfiguration>:

  <PartnerServiceProvider Name="<entityID>"
                          WantAuthnRequestSigned="false"
                          SignSAMLResponse="false"
                          SignAssertion="false"
                          EncryptAssertion="false"
                          DisableInboundLogout="false"
                          DisableOutboundLogout="false" />

Пример настройки saml.config:


Рисунок 9. Пример saml.config

  • Для Web.config добавляем следующую строку внутри тега <amAuthFormats>:

<amAuthFormat id="<entityID> inLoginFormat="Name" outLoginFormat="Principal" />

Пример настройки Web.config:

Рисунок 10. Пример saml.config

4. Аутентификация в Keycloak с использованием Indeed AM SAML IDP

После настройки saml провайдера на странице входа в Keycloak появится дополнительное поле для аутентификации с применением SAML технологии:


Рисунок 11. Страница входа Keycloak с аутентификацией с помощью SAML

Нажимаем на кнопку аутентификации через saml провайдер и выполняем вход в Keycloak под пользователем для которого имеется лицензия на использование Indeed AM SAML IDP и настроен провайдер аутентификации Indeed AM (в данном примере используется Indeed AM Passcode Provider):


Рисунок 12. Аутентификация через Indeed AM SAML IDP


Рисунок 13. Аутентификация в Keycloak успешно выполнена

! Обратите внимание, что во время аутентификации через SAML может появиться запрос на объединение учетных записей. Данный запрос появляется в случае, когда пользователь, под которым выполняется SAML аутентификация, уже создан с помощью других провайдеров аутентификации, использующих доменные учетные данные (например ldap провайдер):


Рисунок 14. Запрос на объединение учетных записей

Для объединения учетных записей необходимо выполнить повторную аутентификацию путем ввода доменного пароля:


Рисунок 15. Повторная аутентификация

(2 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Добавить новый комментарий
 
 
Полное имя:
Email:
Комментарии: