Интеграция с LDAP-каталогом

Примечание: данная статья написана для версии 2.2 и выше

В программе «Руководитель» имеется механизм интеграции с LDAP-каталогом, позволяющий создавать новых пользователей и присваивать им права в автоматическом режиме, без участия администратора.

Пусть имеется домен  Active Directory (AD) с наименованием  MyCompany.org. Предполагается следующий сценарий регистрации нового пользователя в программе:

  1. Администратор домена создает доменные группы пользователей, которым разрешена регистрация в программе и включает в эту группу учетные записи пользователей AD.
  2. Администратор домена создает доменные группы пользователей, соотвествующие группам в программе, и включает учетную запись пользователей в нужные доменные группы.
  3. Пользователь осуществляет первый вход в программу с использованием LDAP, программа создает учетную запись нового пользователя, заполняет информацию о пользователе данными из учетной записи AD, и помещает учетную запись пользователя в соотвествующую группу доступа.
  4. Процесс регистрации завершен, пользователь может полноценно работать в программе

Итак, сначала необходимо настроить параметры на вкладке “Настройки LDAP”:

  1. «Использовать LDAP»— «Да»
  2. «Использовать только LDAP вход» этот параметр регулируется переменной CFG_USE_LDAP_LOGIN_ONLY из файла server.php. Если эта переменная равна true, для входа в программу могут использоваться только пароли от учетных записей AD, иначе возможны оба варианта входа.
  3. «Имя сервера LDAP» — сетевое имя или ip-адрес контроллера домена
  4. «Порт сервера LDAP» — порт, на котором работает служба LDAP
  5. «Основное имя LDAP [ dn ]» — точка в иерархии LDAP, с которой будет начинаться поиск. Обычно достаточно задать значение «DC=MyCompany,DC=org»
  6. «Идентификационный номер LDAP [ uid ]» — атрибут, содержащий уникальное имя учетной записи пользователя, обычно «sAMAccountName» .
  7. «Фильтр имени пользователя LDAP» — здесь можно задать дополнительное условие, используемое при поиске пользователя. Если не задать ничего — в программе сможет зарегистрироваться любой пользователь, имеющий учетную запись в домене. Но если задать условие вида:
(memberOf=cn=RukovGroup,cn=Users,dc=MyCompany,dc=org)

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

  1. «E-mail атрибут LDAP» — атрибут учетной записи пользователь AD, в котором хранится почтовый адрес, обычно “mail”
  2. «Атрибут «Имя»» — атрибут учетной записи пользователь AD, в котором хранится имя пользователя, например “givenname”
  3. «Атрибут «Фамилия»» — атрибут учетной записи пользователь AD, в котором хранится фамилия пользователя, например “sn”
  4. «Пользователь LDAP [ dn ]», «Пароль LDAP» — логин и пароль пользователя для подключения к AD.

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

Автоматическое назначение группы доступа

На вкладке «Структура приложения» – «Группы пользователей» в свойствах каждой группы на вкладке «Настройка LDAP» заполняем поле «Фильтр LDAP»:

Группа пользователей Руководитель Фильтр LDAP
Клиент
(memberOf=cn=client,cn=Users,dc=MyCompany,dc=org)
Разработчик
(memberOf=cn=developer,cn=Users,dc=MyCompany,dc=org)
Менеджер
(memberOf=cn=manager,cn=Users,dc=MyCompany,dc=org)

Таким образом, если учетная запись пользователя находится в доменной группе «client», его учетная запись в программе будет помещена в группу «Клиент» и так далее.

Проверка фильтров производится до первого совпадения, в порядке сортировки групп пользователей на странице «Группы доступа для пользователей». Если ни один из фильтров не совпал, или они не заданы, учетная запись пользователя будет помещена в группу, у которой указан признак «По умолчанию для LDAP».

Для просмотра атрибутов учетных записей в AD можно воспользоваться например бесплатной программой Active Directory Explorer.