аутентификация двух LDAP доменов

Запросы на решение проблем

Модератор: ykolesnikov

Ответить
kiby
OTRS Новобранец
Сообщения: 16
Зарегистрирован: 18 июн 2013, 10:51

аутентификация двух LDAP доменов

Сообщение kiby » 23 июл 2013, 11:26

есть рабочая система OTRS, настроена LDAP аутентификация (домен kontora.local). понадобилось подключить к ней еще пользователей дочерней организации (домен dochka.local). По подобию рабочего конфига и http://doc.otrs.org/3.2/en/html/externa ... r-ids-ldap сделал новый на два LDAP.
кусок конфига:

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

# 2. Customer user backend: LDAP kontora
# (customer ldap backend and settings)
$Self->{CustomerUser1} = {
    Name => 'kontora',
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
        # ldap host
        Host => 'pdc.kontora.local',
        # ldap base dn
        BaseDN => 'dc=kontora,dc=local',
        # search scope (one|sub)
        SSCOPE => 'sub',
#        # The following is valid but would only be necessary if the
#        # anonymous user does NOT have permission to read from the LDAP tree
        UserDN => 'cn=otrs,cn=users,dc=kontora,dc=local',
        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 => '(&(objectcategory=person)(objectclass=user)(mail=*)(!(description=built-In))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
#        AlwaysFilter => '(&(objectclass=user))',
        # if both your frontend and your LDAP are unicode, use this:
        SourceCharset => 'utf-8',
        DestCharset   => 'utf-8',
        # if your frontend is e. g. iso-8859-1 and the character set of your
        # ldap server is utf-8, use these options:
#        SourceCharset => 'utf-8',
#        DestCharset => 'iso-8859-1',

        # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
        Params => {
            port => 389,
            timeout => 120,
            async => 0,
            version => 3,
        },
    },
    # customer unique id
    CustomerKey => 'sAMAccountName',
    # customer #
    CustomerID => 'mail',
    #CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserListFields => ['displayName', 'cn', 'mail'],
    CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchPrefix => '',
    CustomerUserSearchSuffix => '*',
    CustomerUserSearchListLimit => 500,
    CustomerUserPostMasterSearchFields => ['mail'],
    CustomerUserNameFields => ['givenname', 'sn'],
    # show not own tickets in customer panel, CompanyTickets
    CustomerUserExcludePrimaryCustomerID => 0,
    # add a ldap filter for valid users (expert setting)
#    CustomerUserValidFilter => '(!(description=locked))',
    # admin can't change customer preferences
    AdminSetPreferences => 0,
    #поддержка групп компаний
    CustomerCompanySupport => 1,
    Map => [
        # note: Login, Email and CustomerID needed!
        # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
        [ 'UserTitle',      'Title',      'sAMAccountName',           1, 0, 'var', '', 0 ],
        [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
        [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
        [ 'UserLogin',      'Username',   'sAMAccountName',             1, 1, 'var', '', 0 ],
        [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
        [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
#        [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
#        [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
#        [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
        [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
    ],
};
OTRS 3.2.7 Centos 6.4 MySQL 5.1

kiby
OTRS Новобранец
Сообщения: 16
Зарегистрирован: 18 июн 2013, 10:51

Re: аутентификация двух LDAP доменов

Сообщение kiby » 23 июл 2013, 11:27

продолжение конфига:

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

# 3. Customer user backend: LDAP dochka
# (customer ldap backend and settings)
$Self->{CustomerUser2} = {
    Name => 'dochka',
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
        # ldap host
        Host => 'pdc.dochka.local',
        # ldap base dn
        BaseDN => 'dc=dochka,dc=local',
        # search scope (one|sub)
        SSCOPE => 'sub',
#        # The following is valid but would only be necessary if the
#        # anonymous user does NOT have permission to read from the LDAP tree
        UserDN => 'CN=otrs,OU=Сервисные учетки,DC=dochka,DC=local',
        UserPw => 'H23.07.2013',
        # 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 => '(&(objectcategory=person)(objectclass=user)(mail=*)(!(description=built-In))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
#        AlwaysFilter => '(&(objectclass=user))',
        # if both your frontend and your LDAP are unicode, use this:
        SourceCharset => 'utf-8',
        DestCharset   => 'utf-8',
        # if your frontend is e. g. iso-8859-1 and the character set of your
        # ldap server is utf-8, use these options:
#        SourceCharset => 'utf-8',
#        DestCharset => 'iso-8859-1',

        # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
        Params => {
            port => 389,
            timeout => 120,
            async => 0,
            version => 3,
        },
    },
    # customer unique id
    CustomerKey => 'sAMAccountName',
    # customer #
    CustomerID => 'mail',
    #CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserListFields => ['displayName', 'cn', 'mail'],
    CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchPrefix => '',
    CustomerUserSearchSuffix => '*',
    CustomerUserSearchListLimit => 500,
    CustomerUserPostMasterSearchFields => ['mail'],
    CustomerUserNameFields => ['givenname', 'sn'],
    # show not own tickets in customer panel, CompanyTickets
    CustomerUserExcludePrimaryCustomerID => 0,
    # add a ldap filter for valid users (expert setting)
#    CustomerUserValidFilter => '(!(description=locked))',
    # admin can't change customer preferences
    AdminSetPreferences => 0,
    #поддержка групп компаний
    CustomerCompanySupport => 1,
    Map => [
        # note: Login, Email and CustomerID needed!
        # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
        [ 'UserTitle',      'Title',      'sAMAccountName',           1, 0, 'var', '', 0 ],
        [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
        [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
        [ 'UserLogin',      'Username',   'sAMAccountName',             1, 1, 'var', '', 0 ],
        [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
        [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
#        [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
#        [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
#        [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
#        [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
    ],
};
но при попытке входа под пользователем со второго LDAP сервера система выдает ошибку "CustomerUser: promo authentication failed, no LDAP entry found!BaseDN='dc=kontora,dc=local', Filter='(sAMAccountName=promo)', (REMOTE_ADDR: 192.168....)." То есть пользователь ищется не в дочернем домене а в основном! как победить не пойму:(
OTRS 3.2.7 Centos 6.4 MySQL 5.1

kiby
OTRS Новобранец
Сообщения: 16
Зарегистрирован: 18 июн 2013, 10:51

Re: аутентификация двух LDAP доменов

Сообщение kiby » 23 июл 2013, 11:29

причем ldap запрос с сервера otrs

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

ldapsearch -h pdc.dochka.local -b "dc=dochka,dc=local" -D "Otrs@dochka.local" -W
обрабатывается нормально, ответ есть, так же и на основной сервер ldap kontora.local запросы проходят
OTRS 3.2.7 Centos 6.4 MySQL 5.1

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: аутентификация двух LDAP доменов

Сообщение alexus » 23 июл 2013, 11:46

Читайте маны. Тема намолена-намылена до блеска. ЭТО -
kiby писал(а):$Self->{CustomerUser2}
не авторизация. Это -
kiby писал(а):# (customer ldap backend and settings)
, а Вам надо - customer authentication settings
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

kiby
OTRS Новобранец
Сообщения: 16
Зарегистрирован: 18 июн 2013, 10:51

Re: аутентификация двух LDAP доменов

Сообщение kiby » 24 июл 2013, 10:54

Спасибо, разобрался, действительно чуток попутал сам
OTRS 3.2.7 Centos 6.4 MySQL 5.1

vtorushin.dv
OTRS Новобранец
Сообщения: 3
Зарегистрирован: 07 авг 2014, 16:10

Re: аутентификация двух LDAP доменов

Сообщение vtorushin.dv » 12 авг 2014, 17:23

Kiby у меня такая же задача стоит сейчас, выложи пожалуйста работающий конфиг.
OTRS 3.3.8
Ubuntu srv 14.04
MySql 5.5.38

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: аутентификация двух LDAP доменов

Сообщение alexus » 13 авг 2014, 12:21

Тема обсуждалаь уже много раз. Надо просто прочитать мануал, конфиг Defaults.pm (не править!!!!! переносить в Config.pm )и поэспериментировать пару часиков.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

Ответить