Введение
VSA поддерживает аутентификацию через LDAP/AD.
При входе в VSA пользователи используют свой логин LDAP/AD без указания домена, например, IV.Petrov.
Создание пользователей LDAP/AD
Существует 3 варианта создания пользователя LDAP/AD в VSA:
- Пользователем самостоятельно
- Вручную администратором
- Посредством импорта (находится в разработке)
Создание пользользователя самим пользователем
- Пользователь переходит на страницу входа VSA
- Пользователь вводит свой логин/пароль от LDAP/VSA
- Если логин/пароль верные, то VSA автоматически создает пользователя с таким логином/паролем в своем хранилище
- Созданному пользователю назначаются права по умолчанию
Вручную администратором
- Администратор создает пользователя в VSA с таким же логином как в LDAP.
- Администратор задает случайный пароль для этого пользователя.
- Администратор назначает необходимые права пользователю.
- Пользователь переходит на страницу входа VSA
- Пользователь вводит свой логин/пароль от LDAP/VSA
- Если логин/пароль верные, то пользователь успешно входит в VSA.
- При успешном входе в VSA случайный пароль, заданный администратором, перезаписывается на пароль из LDAP/VSA.
Импорт пользователей (находится в разработке)
Импорт пользователей описан в разделе про импорт.
Права по умолчанию
При автоматическом создании самим пользователем и при импорте назначаются права по умолчанию:
- Создание проектов
- Просмотр проектов
- Редактирование проектов
- Создание скриптов
- Просмотр скриптов
- Редактирование скриптов
- Создание списков ключевых слов
- Просмотр списков ключевых слов
- Редактирование списков ключевых слов
- Создание шаблонов фильтров поиска
- Просмотр шаблонов фильтров поиска
- Редактирование шаблонов фильтров поиска
- Создание шаблонов экспорта
- Просмотр шаблонов экспорта
- Редактирование шаблонов экспорта
- Загрузка записей
Создание групп LDAP/AD
Как таковой связи между группами VSA и группами LDAP/AD нет.
Но есть возможность импортировать группы и вхождение пользователей в группы посредством импорта.
Описано в разделе про импорт.
Импорт (находится в разработке)
Чтобы облегчить задачу создания пользователей и групп при внедрении VSA, существует механизм импорта.
Импорт делится на 3 операции:
- Импорт пользователей
- Импорт групп
- Импорт вхождений пользователей в группы
Импорт пользователей
Мастер импорта состоит из двух шагов:
- Выбор пользователей для импорта. Администратору будет предложен список для импорта, необходимо будет отметить пользователей, которые должны быть импортированы.
- Произвести непосредственный импорт, по окончании которого будет продемонстрирован отчет об импорте.
Импорт групп
Мастер импорта состоит из двух шагов:
- Выбор групп для импорта. Администратору будет предложен список для импорта, необходимо будет отметить группы, которые должны быть импортированы.
- Произвести непосредственный импорт, по окончании которого будет продемонстрирован отчет об импорте.
Импорт вхождений пользователей в группы
Мастер импорта состоит из двух шагов:
- Выбор вхождений для импорта. Администратору будет предложен список пользователей и их групп для импорта, необходимо будет отметить вхождения, которые должны быть импортированы.
- Произвести непосредственный импорт, по окончании которого будет продемонстрирован отчет об импорте.
Конфигурация VSA для работы с LDAP/AD
Чтобы включить вход в VSA через LDAP / Active Directory, нужно сделать следующие настройки:
Параметр | Описание | Значение по умолчанию | Используется при аутентификации | Используется при импорте |
---|---|---|---|---|
ldap.url | URL ldap-каталога в формате ldap://<хост>:<порт> | V | V | |
ldap.adminUserDn | Путь до служебного пользователя. Для AD формат в виде электронной почты <логин>@<домен>. Для остальных LDAP-каталогов может быть представлен в виде полного пути до учетной записи, например, cn=admin,dc=voisi,dc=com | V | V | |
ldap.adminUserPassword | Пароль служебной учетной записи | V | V | |
ldap.userDnPattern | Путь до организационного юнита, где располагаются все пользователи, которые будут ходить в VSA, например, ou=Users,dc=voisi,dc=com | V | V | |
ldap.usernameField | Атрибут пользователя, отвечающий за логин. Для AD - sAMAccountName. Для прочих LDAP - чаще всего uid. | sAMAccountName | V | V |
ldap.userObjectClass | Класс LDAP, отвечающий за пользователя. Для AD - user. Для прочих LDAP - чаще всего inetOrgPerson. | user | V | |
ldap.groupObjectClass | Класс LDAP, отвечающий за группу. Для AD - group. Для прочих LDAP - чаще всего groupOfNames. | group | V | |
ldap.memberNameResolveRequired | Используется только для AD, должно быть выставлено в true. Для прочих LDAP должно быть выставлено значение false. | true | V |
Особое внимание при заполнении ldap.userDnPattern стоит обратить на префикс перед названием контейнера. Чаще всего они бывают двух видов: "OU" или "CN".
Если будет указан неверный префикс, то пользователь найден не будет.
Некоторые данные в AD могут лежать по ссылкам, поэтому может возникать `PartialResultException: Unprocessed Continuation Reference(s)`:
https://stackoverflow.com/questions/16412236/how-to-resolve-javax-naming-partialresultexception
https://stackoverflow.com/questions/37486159/springs-ldaptemplate-search-partialresultexception-unprocessed-continuation-r
Для этого нужно "сузить" путь до пользователей `ldap.userDnPattern`, например, вместо `DC=voisi,DC=com` указать `CN=Users,DC=voisi,DC=com`.
Пример конфигурации для AD:
Пример конфигурации для прочих LDAP:
Служебному пользователю достаточно прав на чтение пользователей каталога.