Данная статья описывает процесс настройки единого входа (SSO) для веб-приложения Vitro-CAD. Настройка включает подключение корпоративной службы каталогов (Active Directory) к Keycloak и регистрацию приложения в качестве OIDC-клиента.
Для настройки интеграции перейдите в WebUI Keycloak и выберите существующий или создайте новый реалм.



Этап 1: Подключение LDAP (Active Directory)

Первым шагом необходимо настроить поставщика идентификации для синхронизации учетных записей пользователей из Active Directory.


  1. В левом навигационном меню выберите раздел Федерация пользователей и нажмите Add LDAP provider.
  2. В блоке General options:
  3. В блоке Connection and authentication settings:


  1. В блоке LDAP searching and updating:

  1. Нажмите Сохранить.

Этап 2: Создание и настройка OIDC-клиента для Vitro-CAD

После успешной настройки подключения к службе каталогов необходимо зарегистрировать само веб-приложение Vitro-CAD.

  1. Перейдите в раздел Клиенты и нажмите кнопку Create client.

  1. Вкладка General settings:

  1. Вкладка Capability config:

  1. Вкладка Настройки (Login settings) созданного клиента:

  1. Проверьте введенные данные и сохраните настройки.
На этом базовая конфигурация на стороне Keycloak завершена. Инфраструктура готова к обработке запросов авторизации от веб-приложения Vitro-CAD с проверкой учетных данных в корпоративном каталоге.
Со стороны веб-приложения Vitro-CAD настройка заключается в определении параметров подключения по OpenId в конфигурационном файле:
/Vitro/Server/Conf/openid.json. Если файла нет, то его нужно создать.
Параметры:
\[
  \{
  "Name": "Текст, который отображается на форме логина",
  "AuthenticationScheme": "Уникальный код для схемы аутентификации",
  "Authority": "адрес сервера OpenId",
  "ClientId": "ID клиента",
  "ClientSecret": "Секрет",
  "ResponseType": "code",
  "ScopeList": \["openid", "email"\]
  \}
\]
Пример настройки:
\\
\[
  \{
  "Name": "Вход Keycloak",
  "AuthenticationScheme": "LdapOpenId",
  "Authority": "https://sso.example.com/realms/master",
  "ClientId": "vitro-web",
  "ClientSecret": "clientsecret12345",
  "ResponseType": "code",
  "ScopeList": \["openid", "email"\]
  \}
\]