Каталог доступа

В этой статье:

Общее описание

Статья описывает интеграцию с Active Directory через создание LDAP-подключения в разделе "Каталог доступа".

Взаимодействие с Active Directory (AD) связывает учетные записи пользователей Windows с пользователями системы Юниверс DG. Позволяет авторизоваться через учетную запись Windows и получать права доступа в систему Юниверс.

Примечание

Раздел "Каталог доступа" доступен для работы, если пользователю назначена роль с правом Каталог доступа

Протокол LDAP используется в системе Юниверс DG для взаимодействия с Active Directory (и другими способами аутентификации).

Для интеграции создается LDAP-сервер и подключается к Active Directory. Active Directory имеет собственную структуру объектов, которая настраивается под требуемую IT-инфраструктуру.

Также разные версии Active Directory могут использовать разные фильтры. Для проверки настройки фильтров используйте кнопку "Проверить подключение".

Структура запроса для LDAP может быть создана администратором Active Directory.

При возникновении сложностей с настройкой интеграции воспользуйтесь поиском в интернете. Полезные ссылки:

Создание LDAP-подключения

Чтобы создать подключение:

  1. Убедитесь, что открыт раздел "Каталог доступа".

  2. Нажмите кнопку image1 "Создать" в нижней части списка подключений.

  3. Заполните основные параметры во вкладке "LDAP-подключения" (Рисунок 1):

    • URL сервера. Обязательный.

    • Порт. Обязательный. Значения по умолчанию: с ssl сертификатом - 636, без сертификата - 389.

    • Логин. Обязательный. Указывается значение атрибута AD "distinguishedName" (например, "CN=mdmADTest,CN=Users,DC=achrf,DC=ru").

    • Пароль. При обновлении не требуется указание пароля, если он не был изменен.

    • Использовать SSL сертификат. Включение флага подразумевает, что в java на сервере mdm установлен сертификат.

    • Участники. Имя атрибута, в котором указан список групп, где участвует пользователь. Заполняется на основании настроек AD. Если поле пустое или некорректно заполненное - пользователь не будет привязан к своим группам. Проверьте, что поле "Участники" заполнено. Значение должно соответствовать настройкам AD, чаще всего это memberOf или members. Пользователи должны входить в группы AD.

    • Максимальное количество пользователей. По умолчанию, количество записей в AD - не более 1000. Пагинация отсутствует. Если настройки сервера AD изменены в большую сторону, то параметр можно отредактировать, но не более, чем указано в настройках сервера (подробности см. в официальной документации).

  4. При необходимости нажмите кнопку image2 "Проверить подключение", чтобы осуществить проверку корректности подключения.

  5. Принудительный запуск операции синхронизации доступен при нажатии кнопки "Синхронизировать".

  6. Перейдите во вкладку "Домены безопасности".

  7. Нажмите image3 "Создать" в верхнем правом углу экрана.

  8. Заполните основные параметры домена (Рисунок 2):

    • Домен безопасности. Обязательный. Имя домена безопасности.

    • Базовый поиск пользователей. База для поиска. Например, при "distinguishedName" выглядит как "CN=mdmADTest,CN=Users,DC=achrf,DC=ru", в поле "Базовый поиск пользователей" нужно указать "CN=Users,DC=achrf,DC=ru".

    • Фильтр пользователей. Дополнительный фильтр пользователей. Чтобы отфильтровать только пользователей с именем "mdmADTest", необходимо указать фильтр (&(objectcategory=user)(CN=mdmADTest)). Фильтр поддерживает поиск по маске. Чтобы найти нескольких пользователей "mdmADTest_1", "mdmADTest_2", "mdmADTest", необходимо указать фильтр (&(objectcategory=user)(CN=mdmADTes*)).

    • Базовый поиск групп. Заполняется аналогично параметру "Базовый поиск пользователей" - только для групп.

    • Фильтр групп. Заполняется аналогично параметру "Фильтр пользователей" - только для групп. Например, указав в поле "Фильтр пользователей" (&(objectCategory=group)|(CN=Администратор*)), будут доступны только группы, начинающиеся с "Администратор" (Администраторы, Администратор ролей и т.д).

  9. Нажмите кнопку image4 "Предварительный просмотр", чтобы убедиться, что параметры верны и производится выборка необходимых групп/пользователей. В результате действия будут получены и отображены пользователи и группы согласно фильтрам в настройках домена с сервера AD.

  10. Чтобы настроить регулярность синхронизации - перейдите во вкладку "Расписание".

  11. Нажмите image3 "Создать" в верхнем правом углу экрана.

  12. В поле CRON выражение задайте периодичность запуска синхронизации. При наведении курсора на значок image5 в конце строки отобразится всплывающая подсказка с возможными вариантами расписания.

  13. После внесения всех необходимых изменений - нажмите image6 "Сохранить" в верхнем правом углу экрана.

Вкладка "LDAP-подключения"

Рисунок 1 – Вкладка "LDAP-подключения"

Вкладка "Домены безопасности"

Рисунок 2 – Вкладка "Домены безопасности"

Выбор формата импорта ФИО из AD

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

В качестве значения по умолчанию выставлен формат "Фамилия / Имя / Отчество".

Пример:

Учетная запись на сервере AD содержит поля "Имя" и "Фамилия".

Создано 2 пользователя: либо в разных доменах (порядок имени и отчества различается); либо оба пользователя в одном домене, но имя и фамилия одного перепутаны местами:

  • Имя "Петр", фамилия "Александров",

  • Имя "Петров", фамилия "Александр".

Настройка

В настройках раздела "Каталог доступа" во вкладке "Домены безопасности" необходимо создать 2 домена с разными фильтрами:

Первый:

  • Базовый поиск пользователей: CN=Users,DC=achrf,DC=ru

  • Фильтр пользователей: (&(objectcategory=user)(CN=Петр Александров)) (формат имени "Имя/Фамилия")

Второй:

  • Базовый поиск пользователей: CN=Users,DC=achrf,DC=ru

  • Фильтр пользователей (&(objectcategory=user)(CN=Петров Александр)) (формат имени "Фамилия/Имя")

В результате в процессе выполнения операции синхронизации в системе сохраняются два пользователя с корректным заполнением имени и фамилии.

Авторизация через AD

Авторизация через AD происходит без применения дополнительных настроек. Пользователь будет загружен, сохранен и добавлен в группы, которые уже существуют в системе Юниверс DG. Для авторизации используется логин от учетной записи Windows.

Синхронизация с AD

  1. Конфигурация Active Directory читается из БД.

  2. По всем доменам загружаются группы, далее сохраняются или обновляются в Юниверс DG. Группы, неудовлетворяющие фильтрам, удаляются из системы.

  3. Далее загружаются пользователи (по всем доменам), сохраняются или обновляются в системе. Если пользователь уже существует (например, создан через интерфейс), то он не будет сохранен или обновлен информацией из AD.

  4. Пользователям, имеющим доступы к ресурсам безопасности: "Роли" и "Пользователи", будет доступен отчет в Уведомлениях системы. При этом учитываются только персональные роли - роли из групп игнорируются. Детализация отчета доступна по одноименной кнопке.

Отображение дополнительных параметров учетной записи Active Directory в Windows (Рисунок 5/6):

../../../_images/image049.png Отображение дополнительного параметра"

Рисунок 5/6 – Отображение дополнительного параметра

Единая группа пользователей AD

При старте системы происходит создание общей группы для пользователей, если она не была создана заранее.

Также добавление всех пользователей в общую группу происходит при синхронизации. Если группа была удалена перед синхронизацией, то она будет создана автоматически при синхронизации.

  • Если существует LDAP подключение, но синхронизация не происходила и пользователь AD пытается зайти в систему, то в таком случае он также добавляется в общую группу (она также создастся автоматически при отсутствии в системе).

  • Если пользователь AD был добавлен во внутреннюю группу (созданную в интерфейсе вручную), то при следующей синхронизации/входе пользователя в систему он не будет удален из этих групп.

Примечание:

  • Чтобы пользователи попали в группу, которая ранее была создана вручную через интерфейс, необходимо взять системное имя группы из поисковой строки (при создании в интерфейсе оно автоматически задается в форме UUID) и добавить это значение в параметр "Системное имя общей группы для пользователей из AD". После этого пользователи будут добавляться в уже созданную группу.

Вопросы и ответы

Сокращения:

  • AD - active directory

  • Система - платформа Юниверс

Как мне загрузить больше 1000 пользователей?

Выставить необходимое число в поле "Максимальное количество пользователей". Это количество пользователей, которое будет выгружено из каждого домена.

Когда система получает свежие данные о пользователе AD?

Данные пользователя в системе обновляются только в процессе операции синхронизации или после успешной авторизации.

Я изменил данные пользователя в Системе. После синхронизации поля изменились на поля из учетной записи AD

Информация из AD считается приоритетной, каждый раз после синхронизации/успешной авторизации пользователя в Системе, его данные будут обновлены на актуальные из AD.

Я заблокировал учетную запись в Системе, но пользователь может продолжать работу после синхронизации с AD

Информация из AD считается приоритетной, каждый раз после синхронизации/успешной авторизации пользователя в Системе, его учетная запись будет деактивирована/активирована согласно AD.

Я заблокировал пользователя в AD, но он продолжил работать в Системе

Система обновляет учетные записи пользователей только при синхронизации/авторизации в Системе. После синхронизации учетная запись пользователя станет неактивной, пользовательская сессия будет завершена.

У меня не выгрузился пользователь

userPrincipalName используется в Системе как логин пользователя. Пользователь без заполненного атрибута userPrincipalName не будет сохранен в Системе. Если login пользователя содержит недопустимые символы, пользователь не будет сохранен в Системе. Допустимые символы: латинские буквы, цифры, символы тире, подчеркивания ( _ ) и точки (.). Логин может начинаться с цифры, знак @ в логине недопустим, пробел в логине недопустим.

У меня выгрузился пользователь без фамилии/имени/отчества или ФИО перепутано местами

Имя пользователя читается из атрибута givenName, фамилия из sn, отчество из initials, т.к. многие компании указывают отчество работника в поле "Инициалы". Система при считывании пользователя формирует строку givenName sn initials , что соответствует паттерну разбора "имя / фамилия / отчество". Если в AD в поле "Имя" записывается Имя Отчество, поле "Инициалы" не заполняется, то необходимо изменить паттерн разбора ФИО на "имя / отчество / фамилия".

Я изменил "userPrincipalName" у пользователя в AD, в Системе теперь 2 пользователя

userPrincipalName используется в Системе как логин пользователя. Если userPrincipalName изменен, в системе будет создан новый пользователь.

В конфигурации домена я указал фильтр на группы, но пользователи в них не добавились

Фильтр групп отвечает только за выгрузку групп, если фильтр пользователей не задан, пользователи не будут выгружены.

Я указал фильтр пользователей и фильтр групп, но пользователи не добавились в группы

Проверьте, что поле "Участники" заполнено. Значение должно соответствовать настройкам AD, чаще всего это memberOf или members. Пользователи должны входить в группы AD.

Я хочу выгрузить только активных пользователей

В большинстве случаев достаточно добавить в фильтр пользователей выражение (!(userAccountControl:1.2.840.113556.1.4.803:=2)). Если фильтр работает некорректно, обратитесь к документации AD.

Я хочу выгрузить всех пользователей с именем, начинающимся на букву П

Используйте в фильтре *. Добавьте в фильтр пользователей выражение (SN=П*).

При неуспешной авторизации по SSO в Журнале аудита не отображается логин пользователя

На этапе авторизации через SSO система не имеет данных о логине доступа, в лог записывается пустое значение.

При синхронизации у меня возникает ошибка LDAP: error code 3 - Timelimit Exceeded

Увеличьте значение переменной com.universe.mdm.ldap.integration.ldap.connection.time.limit.

При блокировке учетной записи непосредственно в Системе (в интерфейсе пользователя) сессия пользователя закрывается

Это корректное поведение. Так как учетная запись заблокирована, то и текущая сессия должна быть немедленно завершена.

Что если пользователь не попал по фильтрам ни в одну из групп?

Если внешний пользователь не попал по фильтрам ни в одну из групп, полученных из AD, то пользователь зайти в Систему сможет, но объекты в Системе не увидит.