OTRS – несколько LDAP бэкендов

В качестве источника клиентов может выступать внешняя база данных (external backend), в частности LDAP, причем не один.

Использование больше чем одного пользовательского хранилища данных с OTRS

Как подключить к OTRS несколько баз данных, LDAP? Все это возможно сделать, надо только не забывать присваивать порядковые номера для разделов конфигурации $Self->{CustomerUser1}, $Self->{CustomerUser2} и т.д.

Есть возможность интегрировать до 10 различных пользовательских бэк-эндов.

Пример конфигурации 2 LDAP-бэкэнда

Добавьте в файл Kernel/Config.pm:

#LDAP1
 $Self->{CustomerUser1} = {
  Name => 'LDAP 1',
  Module => 'Kernel::System::CustomerUser::LDAP',
  Params => {
  Host => 'ldap://ldap.eu.yourdomain.ru',
  BaseDN => 'dc=USR,dc=EU,dc=yourdomain,dc=RU',
  SSCOPE => 'sub',
  UserDN => '',
  UserPw => '',
# in case you want to add always one filter to each ldap query, use
        # this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
  #AlwaysFilter => '',
  AlwaysFilter => '(mail=*@*)',
  # if both your frontend and your LDAP are unicode, use this:
  SourceCharset => 'utf-8',
  DestCharset => 'utf-8',
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
  Params => {
  port => 389,
  timeout => 120,
  async => 0,
  version => 3,
            },
},
  CustomerKey => 'uid',
  CustomerID => 'cn',
  # Поля выводимы в поле "от клиента" при создании заявки
  #CustomerUserListFields => ['uid', 'cn', 'telephoneNumber'],
   CustomerUserListFields => ['cn', 'telephoneNumber', 'mail'],
  #CustomerUserListFields => ['cn', 'st', 'telephoneNumber'],
   CustomerUserSearchFields => ['uid', 'sn', 'cn', 'telephoneNumber', 'mail'],
  #CustomerUserSearchFields => ['uid', 'sn', 'cn', 'st', 'telephoneNumber'],
  CustomerUserSearchPrefix => '',
  CustomerUserSearchSuffix => '*',
  CustomerUserSearchListLimit => 10000,
  CustomerUserPostMasterSearchFields => ['mail'],
  #CustomerUserPostMasterSearchFields => ['st'],
  #CustomerUserNameFields => ['givenname', 'sn'],
  CustomerUserNameFields => ['sn', 'cn'],
  #show not own tickets in customer panel, CompanyTickets
  CustomerUserExcludePrimaryCustomerID => 0,
  #add an ldap filter for valid users (expert setting)
  #CustomerUserValidFilter => '(!(description=locked))',
  #administrator can't change customer preferences
  AdminSetPreferences => 0,
# cache time to live in sec. - cache any database queries
 CacheTTL => 120,
 Map => [
    # note: Login, Email and CustomerID are mandatory!
    # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
 [ 'UserPhone', 'Phone', 'telephoneNumber', 1, 0, 'var', '', 0 ],
 [ 'UserFirstname', 'Firstname', 'sn', 1, 1, 'var', '', 0  ],
 [ 'UserLastname', 'Lastname', 'cn', 1, 1, 'var', '', 0  ],
 [ 'UserLogin', 'Username', 'cn', 1, 1, 'var', '', 0  ],
 [ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0  ],
 [ 'UserCustomerID', 'CustomerID', 'uid', 1, 1, 'var', '', 0  ],
   ],
 };

#LDAP2
 $Self->{CustomerUser2} = {
  Name => 'LDAP 2',
  Module => 'Kernel::System::CustomerUser::LDAP',
  Params => {
  Host => 'ldaps://mail.yourdomain.ru',
  BaseDN => 'cn=yourdomain.ru',
# search scope (one|sub)
  SSCOPE => 'sub',
  UserDN => 'eu',
  UserPw => 'pass',
# in case you want to add always one filter to each ldap query, use
        # this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
AlwaysFilter => '',
#  AlwaysFilter => '(mail=*@*)',
  # if both your frontend and your LDAP are unicode, use this:
  SourceCharset => 'utf-8',
  DestCharset => 'utf-8',
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
  Params => {
  port => 636,
  timeout => 120,
  async => 0,
  version => 3,
#            sslversion => 'sslv2/3',  # defaults to: 'tlsv1'
#            verify => 'require',
 
#            clientcert => '/path/to/cert.pem',
#            clientkey => '/path/to/key.pem',
#            keydecrypt => sub { 'secret'; },
#            capath => '/path/to/servercerts/',
            },
},
# customer unique id
  CustomerKey => 'uid',
  CustomerID => 'ou',
  # Поля выводимые в поле "от клиента" при создании заявки
  CustomerUserListFields => ['cn', 'telephoneNumber', 'ou', 'mail'],
  # CustomerUserListFields => ['cn', 'mail'],
  #CustomerUserListFields => ['cn', 'st', 'telephoneNumber'],
   CustomerUserSearchFields => ['uid', 'cn', 'telephoneNumber', 'mail'],
  #CustomerUserSearchFields => ['uid', 'sn', 'cn', 'st', 'telephoneNumber'],
  CustomerUserSearchPrefix => '',
  CustomerUserSearchSuffix => '*',
  CustomerUserSearchListLimit => 10000,
  CustomerUserPostMasterSearchFields => ['mail'],
  #CustomerUserPostMasterSearchFields => ['st'],
  CustomerUserNameFields => ['givenName', 'sn'],
  #CustomerUserNameFields => ['sn', 'cn'],
  #show not own tickets in customer panel, CompanyTickets
  CustomerUserExcludePrimaryCustomerID => 0,
  #add an ldap filter for valid users (expert setting)
  #CustomerUserValidFilter => '(!(description=locked))',
  #administrator can't change customer preferences
  AdminSetPreferences => 0,
# cache time to live in sec. - cache any database queries
 CacheTTL => 120,
 Map => [
    # note: Login, Email and CustomerID are mandatory!
    # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
 [ 'UserTitle',      'Title',      'title', 1, 0, 'var', '', 0 ],
 [ 'UserPhone', 'Phone', 'telephoneNumber', 1, 0, 'var', '', 0 ],
 [ 'UserFirstname', 'Firstname', 'givenName', 1, 1, 'var', '', 0  ],
 [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var', '', 0  ],
 [ 'UserLogin', 'Username', 'uid', 1, 1, 'var', '', 0  ],
 [ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0  ],
 [ 'UserCustomerID', 'CustomerID', 'ou', 1, 1, 'var', '', 0  ],
   ],
 };

Те же самые настройки можно выполнить через интерфейс агента:
Администрирование -> Конфигурация системы -> Framework -> Frontend::Customer::Auth

Пример рабочего файла конфигурации Config.pm c MySQL, LDAP, CAS можно посмотреть в статье 1751.

 

Официальная документация: https://otrs.github.io/doc/manual/admin/4.0/ru/html/external-backends.html

 

Закладка Постоянная ссылка.

Добавить комментарий

Ваш e-mail не будет опубликован.

*