Интеграция itop и active directory

UPD: Прошу прощения, Сортировка стояла по организации, поэтому не видел Персон. Все нормально. Все на месте. Видимо пятница сказывается, “внимательность” устала. :slight_smile:
Бьемся дальше с импортом юзеров из AD.

Сейчас руками добавил пользователя LDAP и привязал к нему Персону ранее импортированную из csv файла.
Выяснилось методом тыка, как известно научного, что при создании такого пользователя Поле Логин заполняется без указания домена, т.е. не “domain\name”, а просто “name”.
В систему itop заходит опять же по логину паролю, но логин указывается без домена.
Как бы сделать так чтобы указывать логин в виде: “domain\name”?
Потому что в AD пользователи везде указывают домен при залогинивании куда либо. Боюсь путаница в головах пользователей появится где указывать с доменом логин где без него.

Коллеги, столкнулся с еще одним моментом, а именно с отсутствием поля Profiles при импорте пользователя LDAP на шаге 3.
Как пользователя импортировать с полем Profiles, там выбрать то не чего?user_profiles

При пробе запустить синхронизацию из командной строки с помощью php, выдает - #Unknown column ‘Login,Profiles’ (class: ‘UserLDAP’).

В 3 шаге надо поставить галочку Расширенный режим.

Точно! Спасибо! Получается.

В общем часть пользователей получилось импортировать из csv в виде:

  1. Фамилия,Имя,id (Первичный ключ),Полное название,Login,Profiles
  2. Иванов,Иван Иванович,2,Иванов Иван Иванович,ivanov,profileid->name:Portal user

Если хочется добавить еще поля, Организация или еще что-то, то ошибки выдает, потому что часть информации импортируется и заполняется с импортом Персоны.

Теперь проблема, как авторизацию из 2-х разных AD в разных лесах находящихся сделать в одной системе itop?
В конфиге config-itop.php в модуле:

$MyModuleSettings = array(
‘authent-ldap’ => array (
‘host’ => ‘10.0.0.1’,
‘port’ => 389,
‘default_user’ => ‘admin’,
‘default_pwd’ => ‘admin’,
‘base_dn’ => ‘dc=domain,dc=com’,
‘user_query’ => ‘(samaccountname=%1$s)’,
‘options’ => array (
17 => 3,
8 => 0,
),
‘start_tls’ => false,
‘debug’ => true,
),

Пробовал подставлять и host в виде ‘host’ => ‘10.0.0.1 10.0.1.1’,
и так ‘host’ => ‘10.0.0.1’ ‘10.0.1.1’,
И пробовал base_dn подставлять так же в виде ‘base_dn’ => ‘dc=domain,dc=com dc=domain1,dc=ru’,
И в таком виде ‘base_dn’ => ‘dc=domain,dc=com,dc=domain1,dc=ru’’,
Авторизация проходит только если один host и один base_dn указан.
А мне надо 2 разных чтобы работали. Подскажите как реализовать такое?
Всех благодарю за помощь и консультации!

Пробовал просто ниже по конфигу вставить такой же $MyModuleSettings = array, только с другим лесом?

Сейчас попробую.

Пробовал и весь модуль вставить и в этот же $MyModuleSettings = array, ниже строки host и base_dn дописать. После применения, оставляет один в конфиге, второй удаляет из конфига.
Что делать? Надо авторизацию на двух прикрутить!

Посмотри в сторону аутентификации внешними средствами (apache/nginx ldap auth), наверняка их функционал более широкий, чем у айтопа. В айтопе в этом случае должна быть external учетка у пользователей: https://www.itophub.io/wiki/page?id=2_4_0%3Aadmin%3Auser_authentication_options#integrating_with_an_external_authentication.

Нет ничего проще, нужно просто переписать класс UserLDAP таким образом, чтобы он мог работать с несколькими наборами настроек AD.

Помогите это сделать!

Владимир, а где, в каком месте, в каком файле описывается класс UserLDAP?

Вот накидал:

После установки в конфиге будет так:

'knowitop-multi-ldap-auth' => array (
    'debug' => false,
    'ldap_settings' => array(
        'default' => array(
            'host' => 'localhost',
            'port' => 389,
            'default_user' => '',
            'default_pwd' => '',
            'base_dn' => 'dc=yourcompany,dc=com',
            'user_query' => '(&(uid=%1$s)(inetuserstatus=ACTIVE))',
            'options' => array(
                LDAP_OPT_PROTOCOL_VERSION => 3,
                LDAP_OPT_REFERRALS => 0,
            ),
            'start_tls' => false,
        )
    )
),

А в пользователях так:
image

P.S. Должно работать, но LDAP под рукой нет, так что это не точно)

Владимир, будьте добры, уточните пожалуйста, а как папку называть перед установкой с вашим набором файлов, “knowitop-multi-ldap-auth” ?
И что вписывать в поле “Название набора параметров LDAP” (dc=domain,dc=com?)?
Смысл того что я писал в том, чтобы при создании нового пользователя LDAP в меня выбирать “Пользователь LDAP1”, “Пользователь LDAP2”, где уже настройки LDAP прописаны к тому или иному LDAP серверу.
Могу только догадываться, но мне кажется что при импорте может захотеть чтобы указал к какому LDAP пользователь принадлежит, наподобие с Профайлом пользователя при импорте.
Сейчас попробую, отпишусь о результате. Ваше средство конечно универсальнее, если все так как я думаю.

Владимир, на этапе Configuration Managment options выдает:
Parse error: syntax error, unexpected ‘<’ in …\setup\modulediscovery.class.inc.php(446) : eval()'d code on line 7.

Если дальше пойти устанавливать, то на этапе Ready to Install в списке Data Model Configuration нет модуля knowitop-multi-ldap-auth.
И при компиляции ту же ошибку выдает. на < ругается.

Скопировал папку toolkit в корень, зашел по адресу. На первой закладке да и на всех остальных крутит статус Checking the consistency of the data model definition…
Это нормально или нет?

Нет, все это совсем не нормально. Мне кажется, ты чего-то не того наворотил в extensions, попробуй удалить все модули, кроме knowitop-multi-ldap-auth, или вообще на чистом айтопе попробовать. Проверь права веб-сервера на директорию с айтопом, а лучше – дай полные права для проверки.
Для установки и работы модуля обязательно должен стоять php-ldap.

Да

В конфиге внутри ldap_settings аналогично default задаются другие массивы параметров LDAP, дальше название массива указывается у пользователя.