LDAP v3

Навигатор по разделу:

1. Общие сведения

Avanpost IDM позволяет автоматизировать управление учётными записями и правами доступа пользователей в подключенных службах каталогов, доступ к которым осуществляется по протоколу LDAP v3. 

Коннектор "Ldap.ProvisioningConnector", состоящий из библиотеки (.dll) и конфигурационного файла (.json), устанавливается на сервере Avanpost IDM. С помощью коннектора создается подключение к управляемой службе каталогов. Взаимодействие IDM с управляемой службой каталогов осуществляется с использованием протокола LDAP v3 в одностороннем порядке:

  1. Avanpost IDM инициирует запрос;
  2. Служба каталогов исполняет запрос и возвращает результат исполнения запроса.

Примечание:

Подробнее о настройке ресурсов управляемых систем см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию.

2. Поддерживаемые функции

Коннектор Avanpost IDM к управляемой службе каталогов обладает следующими функциональными возможностями:

1. Управление УЗ пользователей:

  • Создание УЗ пользователя;
  • Изменение атрибутов УЗ пользователя;
  • Блокировка УЗ пользователя;
  • Разблокировка УЗ пользователя;
  • Удаление УЗ пользователя;
  • Получение атрибутов с генерируемыми значениями.

2. Управление доступом и мониторинг активности пользователей:

  • Включение УЗ пользователя в группы доступа;
  • Исключение УЗ пользователя из групп доступа;
  • Получение времени последнего входа пользователя.

3. Управление организационной структурой:

  • Создание, изменение, удаление подразделений;
  • Перемещение УЗ пользователя между подразделениями.

4. Управление каталогами или файлами общего файлового хранилища:

  • Проверка наличия у пользователя прав на использование каталога или файла;
  • Назначение и отзыв у пользователя прав на использование каталога или файла.

3. Поддерживаемые управляемые системы

  • OpenLdap
  • Novell Edirectory
  • Любая служба каталогов, использующая протокол LDAP v3, кроме перечисленных ниже систем:
    • Microsoft Active Directory
    • ALD Pro
    • FreeIPA

4. Порядок установки и настройки подключения

Для установки подключения через коннектор "Ldap.ProvisioningConnector" к управляемой системе необходимо:

  1. Установить коннектор на сервере Avanpost IDM.
  2. Создать служебную УЗ с правами администратора в подключаемой службе каталогов.
  3. Настроить ресурс для подключаемой управляемой системы в IDM.
  4. Проверить настроенную интеграцию.

5. Установка коннектора на сервере Avanpost IDM

Для установки коннектора на сервере Avanpost IDM необходимо выполнить шаги:

Шаг 5.1. Поместить библиотеку коннектора "Ldap.ProvisioningConnector.dll" в директорию "/opt/avanpost/connectors" или на удаленный сервис коннекторов.

Примечание:

Подробнее о настройке удаленного сервиса коннекторов см. статью "5.4. Установка и настройка удаленного сервиса коннекторов Avanpost IDM" руководства по установке.

Шаг 5.2. Настроить конфигурационный файл "ldapconnector.config.json".

Конфигурационный файл ресурса представляет собой расположенный локально файл в формате json (ldapconnector.config.json).

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

Пример файла конфигурации "ldapconnector.config.json"
[
  {
    "username": "cn={0},dc=wsso,dc=local",
    "resourceId": "openldap",
    "provider": "OpenLdap",
    "baseDn": "dc=wsso,dc=local",
    "sessionOptions": {
      "server": "10.10.10.10"
    },
    "groups": {
      "objectKey": "cn",
      "searchKey": "cn",
      "memberAttribute": "memberUid",
      "objectClass": [ "posixGroup", "top" ]
    },
    "users": {
      "distinguishedName": "uid={0},ou=ZAGS,dc=wsso,dc=local",
       "lockAttributes": [
          {
            "attributeKey": "nsaccountlock",
            "lockValue": "TRUE",
            "unlockValue": "FALSE"
          }
      ],
      "memberOfAttribute": "memberUid",
      "searchUserGroups": "Member",
      "objectKey": "uid",
      "objectGroupKey": "entryDn",
      "objectClass": [ "top", "inetOrgPerson", "person", "posixAccount" ],
      "searchClass": [ "person" ],
      "customSearchAllUsersLdapFilter": "(&(cn=*)(uid=usr*))",
      "attributes": [
        {
          "name": "userPassword",
          "description": "Пароль",
          "required": true,
          "isPassword": true
        },
        {
          "name": "sn",
          "description": "Фамилия сотрудника",
          "required": true
        },
        {
          "name": "givenName",
          "description": "Имя сотрудника",
          "required": true
        },
        {
          "name": "cn",
          "required": true,
          "description": "Полное имя"
        },
        {
          "name": "homeDirectory",
          "description": "Домашний каталог",
          "required": true
        },
        {
          "name": "mail",
          "required": false,
          "description": "E-mail"
        },
        {
          "name": "loginShell",
          "required": true,
          "description": "Оболочка входа"
        },
        {
          "name": "gidNumber",
          "required": false,
          "description": "gidNumber"
        },
        {
          "name": "uidNumber",
          "required": false,
          "description": "uidNumber"
        }
      ]
    }
  }
]

5.2.1. Описание параметров файла конфигурации

ПараметрОписание

resourceId

Идентификатор ресурса, который указывается в строке подключения при настройке ресурса в IDM
userNameМаска для формирования имени учетной записи, от которой будет работать коннектор
baseDnКорневой элемент, по которому будет осуществляться поиск
providerLDAP-провайдер
sessionOptions

Настройки подключения. Объект со следующими свойствами:

СвойствоОписание
serverАдрес LDAP-сервера
portПорт, по умолчанию 389
useSsl
Флаг использования ssl
Допустимые значения: true, false
groups

Настройки групп пользователя. Объект со следующими свойствами:

СвойствоОписание
objectClassМассив классов группы, по которым осуществляется поиск групп
objectKeyАтрибут, из которого будет извлекаться идентификатор группы
searchKeyАтрибут, по которому будет происходить поиск по имени
memberAttributeАтрибут, в котором хранятся члены группы
users

Настройки пользователя. Объект со следующими свойствами:

СвойствоОписание
distinguishedNameМаска для формирования DN пользователя
objectClassМассив строк с именами классов пользователя, которые будут передаваться при создании пользователя
searchClassМассив строк с именами классов, по которым будет происходить поиск пользователя
objectKeyАтрибут, из которого будет извлекаться идентификатор пользователя
objectGroupKeyАтрибут пользователя, использующийся при поиске его групп в атрибутах группы
searchUserGroups
Режим поиска групп пользователя
Допустимые значения: MemberOf - поиск групп в атрибуте пользователя, Member - поиск в атрибутах группы
memberOfAttributeАтрибут, в которой будут записываться группы пользователя
lockAttributes

Настройки блокировки/разблокировки пользователей. Массив объектов со следующими свойствами:

СвойствоОписание
attributeKeyИмя атрибута, в котором хранится значение блокировки
lockValueЗначение, которое устанавливается при блокировке
unlockValueЗначение, которое устанавливается при разблокировке
enable
Флаг, определяющий, используется ли атрибут. Если значение не указано, устанавливается "true"
Допустимые значения: true, false
descriptionОписание атрибута. Необязательный параметр
attributes

Описание атрибутов пользователя. Массив объектов со следующими свойствами:

СвойствоОписание
nameИмя атрибута
descriptionОписание атрибута
required
обязательный параметр. [true/false]
Допустимые значения: true, false

6. Настройка интеграции в Avanpost IDM

Для настройки интеграции управляемой системы в IDM необходимо выполнить шаги:

Шаг 6.1. Создать и настроить ресурс для подключаемой управляемой системы в Avanpost IDM.

Для этого требуется:

  1. В разделе "Интеграции"→"Целевые системы" веб-интерфейса администратора Avanpost IDM нажать и выбрать "Ресурс" из списка.
  2. В открывшейся форме указать произвольное название ресурса.
  3. Нажать . Ресурс будет добавлен в список в разделе "Целевые системы".

    Рисунок – Создание ресурса

  4. Нажать на созданный ресурс в списке. Откроется форма с настройками ресурса.
  5. На вкладке "Атрибуты ресурса" требуется указать следующие атрибуты:
    АтрибутЗначение
    КаталогКаталог в иерархии, в котором находится ресурс. Для смены каталога выбрать из выпадающего списка требуемый каталог.
    НазваниеПроизвольное название ресурса.
    Библиотека коннекторов

    Выбрать из выпадающего списка библиотеку коннекторов "Ldap.ProvisioningConnector". 

    Строка подключения

     Формат строки подключения

    Параметры в строке подключения записываются последовательно с указанием передаваемых значений после знака равно (=). Разделителем между параметрами служит точка с запятой (;).

    Шаблон строки подключения
    userName=[Учетная запись];password=[Пароль];resourceid=[Идентификатор ресурса];file=[Путь до файла конфигурации]
    Пример строки подключения
    userName=admin;password=Avanp0st;resourceid=freeipaigor;file=../ldapconnector.config.json";

    Параметры строки подключения

    Параметр

    Описание

    userNameМаска для формирования имени учетной записи, от которой будет работать коннектор
    passwordПароль к учетной записи
    resourceidИдентификатор ресурса, который задается в файле конфигурации.
    fileРасположение файла конфигурации "ldapconnector.config.json"
    Ресурс включенОтметить чекбокс для активации ресурса в системе.
    Число потоков синхронизацииУказать число потоков синхронизации ресурса с Avanpost IDM. 
    Использовать ограничение потоков синхронизации для операций чтенияОтметить чекбокс для использования ограничения потоков синхронизации для операций чтения.
    Использовать как источник почтовых адресовОтметить чекбокс, если ресурс является источником почтовых адресов.
    Применение изменений прав к ресурсуВыбрать из выпадающего списка "Все назначаемые ролью" или "Только недостающие".

    Примечание:

    Подробнее о настройке ресурсов см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию.

Шаг 6.2. Добавить профиль для созданного ресурса.

Требуется добавить хотя бы один общий или необщий профиль (по инструкции 6.2.1. или 6.2.2.)

6.2.1. Создание общего профиля ресурсов

Для создания общего профиля необходимо:

  1. Перейти в раздел "Интеграции"→"Целевые системы"  в веб-интерфейсе администратора Системы.
  2. Нажать и выбрать из списка "Общий профиль".
  3. Заполнить атрибуты профиля в открывшейся форме (Таблица).
  4. Нажать .

6.2.2. Создание необщего профиля ресурсов

Для создания необщего профиля необходимо:

  1. Перейти в раздел "Интеграции"→"Целевые системы"  в веб-интерфейсе администратора Системы.
  2. Нажать  в строке ресурса, в котором требуется создать профиль, и выбрать из открывшегося списка "Добавить профиль".
  3. Заполнить атрибуты профиля в открывшейся форме (Таблица).
  4. Нажать .

Таблица - Атрибуты профиля.

АтрибутЗначение
НазваниеУказать произвольное название профиля.
Профиль-источник учётных данных

Заполнять, только если в поле "Источник имен учетных записей" выбран вариант "Другой профиль".

Выбрать из списка уже созданных профилей источник учётных данных пользователей. 

Чекбокс "Синхронизировать пароли с источником учётных данных"Включает синхронизацию паролей с источником учётных данных.
Чекбокс "При создании учётных записей генерировать пароль"Включает генерацию первоначального пароля при создании УЗ пользователя в ресурсе.
Чекбокс "Разрешить неуникальность учетных записей по владельцу"Разрешает одному пользователю иметь более одной УЗ в ресурсе.
Чекбокс "Разрешить восстановление пароля"Разрешает восстановление пароля для УЗ в ресурсе.
Источник имен учетных записей

Выбрать из списка источник имен учетных записей:

  • Скрипт – для указания скрипта генерации имен учетных записей.

  • Другой профиль – для выбора другого профиля в качестве источника имен учетных записей.

Возможен вариант создания новых учетных записей только вручную. В таком случае необходимо задать скрипт возвращающий ошибку на запрос генерации имени УЗ.

Сценарий генерации имён учётных записей

Данное поле доступно, только если в поле "Источник имен учетных записей" выбран вариант "Скрипт".

Задать сценарий генерации имен учетных записей на Python.

Кнопка открывает окно редактирования скрипта.

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

Примечание:

Подробнее о юнитах см. статью "5.1.8. Настройка типов объектов и юнитов" руководства по администрированию.

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

  • "Проверить на сотруднике"
  • "Проверить на юните"

Например, владельцами пользовательских УЗ обычно являются сотрудники, а владельцами технических УЗ могут быть юниты, такие как рабочие группы.

После выбора одного из вариантов откроется окно со списком сотрудников или юнитов. Требуется выбрать объект в списке и нажать .
Во всплывающем окне будет указан результат отладочного запуска. В данном случае сгенерированное имя учетной записи.

Чекбокс "Отклонять возвращаемые имена для уже существующих учётных записей"

Данное поле доступно, только если в поле "Источник имен учетных записей" выбран вариант "Скрипт".

При отмеченном чекбоксе отклоняются возвращаемые скриптом имена УЗ, незарегистрированные в IDM, но существующие в ресурсе.

Примечание: По умолчанию существование или отсутствие УЗ в ресурсе не влияет на процесс назначения ролей.

Способ разрешения конфликтов

Данное поле доступно, только если в поле "Источник имен учетных записей" выбран вариант "Скрипт".

Выбрать из списка способ разрешения конфликтов при генерации имён УЗ:

  • Автоматический – по умолчанию к полученному имени прибавляется суффикс "_n" (n ϵ N), и используется первое незанятое имя (сценарий вызывается один раз и не участвует в разрешении конфликта).
  • Повторное выполнение – сценарий берёт на себя разрешение конфликтов, т.е. повторный вызов сценария должен вернуть следующий вариант имени.

Примечание: Номер попытки сохраняется в переменной Iteration, нумерация с 0.

Парольная политика

Выбрать из выпадающего списка одну из настроенных в IDM парольных политик.

Примечание:

Подробнее о настройке профилей ресурсов см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию.

Шаг 6.3. Провести синхронизацию прав и учетных записей с созданным ресурсом с помощью запланированных заданий.

Примечание:

Подробнее о работе с запланированными заданиями см. статью "6.1.9. Настройка запланированных заданий" руководства по администрированию.

7. Проверка настроенной интеграции

Для проверки настроенной интеграции с управляемой службой каталогов необходимо выполнить шаги:

Шаг 7.1. Проверка подключения к управляемой службе каталогов

Для проверки установки соединения с управляемой системой требуется:

  1. В веб-интерфейсе администратора Avanpost IDM открыть ресурс управляемой системы.
  2. На вкладке "Права" добавить глобальное право.

Если право успешно добавлено, то подключение управляемой системы через коннектор выполнено корректно.

Шаг 7.2. Проверка сетевого соединения

Для проверки сетевого соединения необходимо подключиться к управляемой службе каталогов при помощи telnet. При корректном подключении будет выполнен переход в среду службы каталогов.

Шаг 7.3. Проверка обработки запросов

Чтобы убедиться в правильной обработке запросов коннектором, требуется открыть лог-файл, расположенный на сервере Avanpost IDM в папке коннектора, и проверить его на отсутствие ошибок.

8. Методы API коннектора

Метод

Параметры

Описание
CreateSession
  • connectionString – формат строки подключения к ресурсу

Пример значения параметра:

userName=admin;password=Avanp0st;resourceid=0;file=C:\connector\config.json

Установка соединения, проверка возможности соединения с управляемой системой
GetAllRights
Получение списка групп доступа пользователей в управляемой системе. Наименование каждой группы пользователя передается в формате, указанном в файле конфигурации groups.objectKey
SearchRights
  • searchString – подстрока атрибута группы, указанного в файле конфигурации groups.searchKey
Поиск группы доступа из интерфейса IDM по имени
GetAllProperties
Возвращение списка значимых атрибутов пользователей, которые перечислены в файле конфигурации users.attributes
GetUser
  • userId – идентификатор пользователя, указанный в файле конфигурации users.ObjectKey
Получение имени УЗ и статус пользователя. Если УЗ не существует, то метод возвращает null
CreateUser
  • user – учетная запись пользователя, включающая полное имя, пароль и атрибуты пользователя (опционально)
Создание учетной записи пользователя в системе
AddUserRights
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey;
  • rightIds – непустой список идентификаторов групп пользователя (groups.objectKey)
Добавление права пользователю
LockUser
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey
Блокировка учетной записи пользователя, установка lock value из файла конфигурации при указанном users.lockAttributes с полем enabled = true
DropUserRights
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey
  • rightIds – непустой список идентификаторов групп пользователя (groups.objectKey)
Изъятие прав у пользователя
UnlockUser
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey
Блокировка учетной записи пользователя, установка unlock value из файла конфигурации при указанном users.lockAttributes с полем enabled = true
ChangeUserPassword
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey
  • password – новый пароль пользователя, отвечающий парольным политикам ресурса
Изменение пароля пользователя
GetActiveUsers
Получение всех активных (включенных и незаблокированных) УЗ в ресурсе, если в файле конфигурации есть  users.lockAttributes с полем enabled = true, будут возвращены все пользователи у которых указанный атрибут имеет значение равное unlockvalue или не имеет значения. Если lockAttributes пуст вернутся все пользователи.
GetUserProperties
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey
  • propertyIds – непустой список идентификаторов свойств
Получение свойств УЗ
GetUserRights
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey
Получение прав УЗ
SetUserPassword
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey
  • password – новый пароль пользователя, отвечающий парольным политикам ресурса
Задание пароля УЗ
SetUserProperties
  • userId – идентификатор пользователя, указанный в файле конфигурации users.objectKey
Установка значений свойств в существующей УЗ


Обсуждение