Данная статья описывает процесс настройки единого входа (SSO) для веб-приложения Vitro-CAD. Настройка включает подключение корпоративной службы каталогов (Active Directory) к Keycloak и регистрацию приложения в качестве OIDC-клиента.
Для настройки интеграции перейдите в WebUI Keycloak и выберите существующий или создайте новый реалм.
...
Этап 1: Подключение провайдера LDAP (Active Directory) к Keycloak
Первым шагом необходимо настроить поставщика идентификации для синхронизации учетных записей пользователей из Active Directory.
...
- Режим редактирования: READ_ONLY (поскольку Keycloak будет только читать данные пользователей, не изменяя их в AD).
- Пользователи DN: Укажите путь к контейнеру с пользователями (например, CN=Users,DC=vitro,DC=intra).
- Атрибут Username в LDAP: userPrincipalName.
- Атрибут RDN в LDAP: cn.
- Атрибут UUID в LDAP: objectGUID.
- Классы объектов: person, organizationalPerson, user, email.
5. Нажмите Сохранить.
...
Этап 2: Создание и настройка OIDC-клиента для Vitro-CAD
После успешной настройки подключения к службе каталогов необходимо зарегистрировать само веб-приложение Vitro-CAD.
...
5. Проверьте введенные данные и сохраните настройки.
| 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"\]
\}
\] |

