Страница 1 из 1

Дополнительные поля из LDAP

Добавлено: 06 май 2021, 13:46
Nelapsi26
Всем доброго времени суток!
Настроена интеграция ОТРС с LDAP, все работает прекрасно. Но вот появилась задача добавить дополнительные поля из AD и тут я потерпел фиаско. Уже не знаю куда копать. С полями "sAMAccountName", "mail", "telephonenumber", "givenname" и "sn" проблем нет. Они корректно отображаются в ОТРС. Но мобильный телефон (mobile), должность (title) и отдел (departmen) упорно не хотят отображаться в OTRS. Поля появляются, но они пустые. Честно пробовал докопаться до истины самостоятельно и убил не мало времени на это изучая матчасть в разных источниках. Но увы(
Ткните, пожалуйста, носом в то место, где я не прав:-)
Конфиг:

Код: Выделить всё

 Map => [
			[ 'UserFullName',   'ФИО',        'cn',              1, 1, 'var', '', 0 ],
			[ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
			[ 'UserCustomerID', 'CustomerID', 'sAMAccountName',  			 0, 0, 'var', '', 0 ],
			[ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
			[ 'MobilePhone',    'Моб.тел:',   'mobile',   	     1, 0, 'var', '', 1, ],
			[ 'UserTitle',      'Должность',  'title',           1, 0, 'var', '', 1, ], 
			[ 'UserDepartment', 'Отдел',       'department',     1, 0, 'var', '', 0 ],
			[ 'UserFirstname',  'Firstname',  'givenname',       0, 0, 'var', '', 1 ],
			[ 'UserLastname',   'Lastname',   'sn',              0, 0, 'var', '', 1 ],
			[ 'UserLogin',      'Username',   'sAMAccountName',  0, 0, 'var', '', 1 ],  
        ],
Спасибо!

Re: Дополнительные поля из LDAP

Добавлено: 10 май 2021, 22:14
alexus
Добрый день!

А в самом AD в карточке клиента данные-то есть? Скрин бы неплохо было бы глянуть. И в логах есть что-то?

Re: Дополнительные поля из LDAP

Добавлено: 11 май 2021, 15:58
Nelapsi26
alexus писал(а):
10 май 2021, 22:14
Добрый день!

А в самом AD в карточке клиента данные-то есть? Скрин бы неплохо было бы глянуть. И в логах есть что-то?

Добрый день!
В AD у всех соответствующие поля заполнены. Все данные синхронизируются из 1С.
Вот скрин результата выполнения PS, где видно, что поля "title" и "mobile" заполнены.
https://disk.yandex.ru/i/lo5g0a416ZXVyA

В системном журнале никаких ошибок нет.

Re: Дополнительные поля из LDAP

Добавлено: 11 май 2021, 16:02
Nelapsi26
В ОТРС при этом карточка выглядит так:
https://disk.yandex.ru/i/0dARWipkjbVYkg

Re: Дополнительные поля из LDAP

Добавлено: 12 май 2021, 10:23
alexus
Nelapsi26 писал(а):
11 май 2021, 16:02
В ОТРС при этом карточка выглядит так:
https://disk.yandex.ru/i/0dARWipkjbVYkg
А покажите ваш Config.pm полностью. У вас на скрине OTRS поле мобильного телефона - обязательное. А в конфиге оно не обозначено как обязательное. Логичный вывод - конфиг для другого бекенда прописан на самом деле.

Re: Дополнительные поля из LDAP

Добавлено: 12 май 2021, 11:18
Nelapsi26
alexus писал(а):
12 май 2021, 10:23
А покажите ваш Config.pm полностью. У вас на скрине OTRS поле мобильного телефона - обязательное. А в конфиге оно не обозначено как обязательное. Логичный вывод - конфиг для другого бекенда прописан на самом деле.
Если в конфиге подмэпить в поле mobile или title другое поле из AD, например, cn, то оно отображается. Думаю, ввел Вас в заблуждение с обязательными полями так как менял конфиг и пробовал в том числе играться с нулями и единичками. Видимо на сервере в тот момент был один конфиг, а в блокноте немного другой. Но сути дела это не меняет. Такое впечатление, что ОТРС не может прочитать в AD какие-то поля.

Конфиг с сервера на текущий момент.

Код: Выделить всё

#Авторизация БД
	#$Self->{'Customer::AuthModule'}                       = 'Kernel::System::CustomerAuth::DB';
    #$Self->{'Customer::AuthModule::DB::Table'}            = 'customer_user';
    #$Self->{'Customer::AuthModule::DB::CustomerKey'}      = 'login';
    #$Self->{'Customer::AuthModule::DB::CustomerPassword'} = 'pw';
	
	$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
	$Self->{'Customer::AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@Domain.ru' ;
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'server.domain.ru;
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=Domain,DC=ru';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'Login';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'Password';
    $Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '(&(|(objectClass=user)(objectClass=contact))(!(objectClass=computer))(memberOf=CN=Пользователи портала,CN=Users,DC=Domain,DC=ru))';
	
	#Авторизация LDAP
	$Self->{'Customer::AuthModule2'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host2'} = 'server.domain.ru';
    $Self->{'Customer::AuthModule::LDAP::BaseDN2'} = 'DC=domain,DC=ru';
    $Self->{'Customer::AuthModule::LDAP::UID2'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN2'} = 'login';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw2'} = 'password';
    $Self->{'Customer::AuthModule::LDAP::AlwaysFilter2'} = '(&(|(objectClass=user)(objectClass=contact))(!(objectClass=computer))(memberOf=CN=Пользователи портала,CN=Users,DC=int,DC=Domain,DC=ru))';
	
	$Self->{CustomerUser} = {
        Name => 'Name',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            Host => 'server',
            BaseDN => 'DC=Domain,DC=ru',
            SSCOPE => 'sub',
            UserDN => 'Login',
            UserPw => 'password',
			Params => {
                port    => 3268,
                timeout => 240,
                async   => 0,
                version => 3,
            },
            AlwaysFilter => '(&(|(objectClass=user)(objectClass=contact))(!(objectClass=computer))(memberOf=CN=Пользователи портала,CN=Users,DC=Domain,DC=ru))',
            SourceCharset => 'utf-8',
            Die => 0,
        },
        # customer unique id
        #CustomerKey => 'sAMAccountName',
        # customer #
        CustomerKey => 'sAMAccountName',
        CustomerID => 'sAMAccountName',
        CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
		CustomerUserNameFields => ['cn'],
        CustomerUserExcludePrimaryCustomerID => 0,
        AdminSetPreferences => 0,
        Map => [
			[ 'UserFullName',   'ФИО',        'cn',              1, 1, 'var', '', 0 ],
			[ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
			[ 'UserCustomerID', 'CustomerID', 'sAMAccountName',  			 0, 0, 'var', '', 0 ],
			[ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
			[ 'MobilePhone',    'Моб.тел:',   'mobile',          1, 0, 'var', '', 1, ],
			[ 'UserTitle',      'Должность',  'Title',           1, 0, 'var', '', 1, ], 
			[ 'UserDepartment', 'Отдел',       'department',     1, 0, 'var', '', 0 ],
			[ 'UserFirstname',  'Firstname',  'givenname',       0, 0, 'var', '', 1 ],
			[ 'UserLastname',   'Lastname',   'sn',              0, 0, 'var', '', 1 ],
			[ 'UserLogin',      'Username',   'sAMAccountName',  0, 0, 'var', '', 1 ],  
        ],
    };

Re: Дополнительные поля из LDAP

Добавлено: 13 май 2021, 00:51
alexus
Странно... Чудес не бывает. Надо живьём смотреть, возможно логи дополнительные ставить, чтобы понять, где проблема

Re: Дополнительные поля из LDAP

Добавлено: 13 май 2021, 11:50
paver
Вот мой рабочий вариант, например. Единственно - русские заголовки полей я прописываю в языковом конфиге.

Код: Выделить всё

        Map => [
#            # note: Login, Email and CustomerID needed!
#            # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly, http-link-target, link class(es)
            [ 'UserTitle',      'Title',      'title',           1, 0, 'var', '', 0 ],
            [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
            [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
            [ 'UserLogin',      'Username',   'sAMAccountName',  1, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
            [ 'UPN',            'UPN',        'userPrincipalName', 0, 0, 'var', '', 0],
            [ 'UserCustomerID', 'CustomerID', 'company',            0, 1, 'var', '', 0 ],
            # [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
            [ 'UserDivision',   'Division',   'department',        1, 0, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
            [ 'ipPhone',        'ipPhone',    'ipPhone',         1, 0, 'var', '', 0 ],
            [ 'UserAddress',    'Address',    'streetAddress',   1, 0, 'var', '', 0 ],
            [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
        ],
    };