Руководство: Базовая настройка интеграции Vitro-CAD с LDAP через Keycloak (OpenID SSO)
Данная статья описывает процесс настройки единого входа (SSO) для веб-приложения Vitro-CAD. Настройка включает подключение корпоративной службы каталогов (Active Directory) к Keycloak и регистрацию приложения в качестве OIDC-клиента.
Для настройки интеграции перейдите в WebUI Keycloak и выберите существующий или создайте новый реалм.
...
Этап 1: Подключение LDAP (Active Directory)
Первым шагом необходимо настроить поставщика идентификации для синхронизации учетных записей пользователей из Active Directory.
- В левом навигационном меню выберите раздел Федерация пользователей и нажмите Add LDAP provider.
- В блоке General options:
- Наименование в консоли: ldap
- Поставщик (Vendor): Active Directory
- В блоке Connection and authentication settings:
- URL соединения: Укажите адрес вашего контроллера домена (например, ldap://10.0.0.1:389).
- Включить StartTLS: Переведите в положение Off (при использовании стандартного порта 389) или в положение On (при использовании шифрования истандартного и стандартного порта 636)
- Использование: Always.
- Тип аутентификации: simple.
- Сопоставление DN (Bind DN): Укажите выделенную сервисную учетную запись для чтения каталога (например, sp_setup@vitro.intra).
- Bind credentials: Введите пароль от сервисной учетной записи.
- Рекомендация: Обязательно нажмите нажмите кнопки Тест соединения и Проверка аутентификации. В правом верхнем углу должно появиться зеленое уведомление об успешном подключении: Successfully connected to LDAP.
- В блоке блоке LDAP searching and updating:
- Режим редактирования: READ_ONLY (поскольку Keycloak будет только читать данные пользователей, не изменяя их в AD).
- Пользователи DN: Укажите путь к контейнеру с пользователями (например, CN=Users,DC=vitro,DC=intra).
- Атрибут Username в LDAP: userPrincipalName.
- Атрибут RDN в LDAP: cn.
- Атрибут UUID в LDAP: objectGUID.
- Классы объектов: person, organizationalPerson, user, email.
- Нажмите Сохранить.
...
- Перейдите в раздел Клиенты и нажмите кнопку Create client.
- Вкладка General settings:
- Тип клиента (Client type): Выберите OpenID Connect.
- ID клиента: Укажите произвольное наименование (к примеру, Vitro-web).
- Нажмите Next.
- Вкладка Capability config:
- Аутентификация клиента (Client authentication): Включите тумблер (положение Вкл).
- Авторизация (Authorization): Включите тумблер (положение Вкл).
- Authentication flow: Обязательно отметьте чекбоксы Standard flow и Dir
ect access grants.Anchor _GoBack _GoBack - Нажмите Next.
- Вкладка Настройки (Login settings) созданного клиента:
- Валидация URI перенаправления (Valid redirect URIs): Укажите URI возврата вашего приложения. Указанный в этом примере в качестве базового URL https://vitro.example.com

замените адресом вашего портала Vitro-CAD. Полный Uri end point входа: https://vitro.example.com/signin-oidc

- Web источники (Web origins): Укажите базовый URL приложения с маской подстановки (например, https://vitro.example.com/*

).
- Валидация URI перенаправления (Valid redirect URIs): Укажите URI возврата вашего приложения. Указанный в этом примере в качестве базового URL https://vitro.example.com
- Проверьте введенные данные и сохраните настройки.
| Wiki Markup |
|---|
На этом базовая конфигурация на стороне 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"\]
\}
\] |








