Авторизация с нескольких доменов - нет информации о клиенте.

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
Slona
OTRS Новобранец
Сообщения: 10
Зарегистрирован: 28 апр 2012, 12:56

Авторизация с нескольких доменов - нет информации о клиенте.

Сообщение Slona » 03 май 2012, 14:06

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

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

#-----------------------------------ABC--------------------------------------#
$Self->{'Customer::AuthModule1'} = 'Kernel::System::Auth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host1'} = 'dc.domain';
$Self->{'Customer::AuthModule::LDAP::BaseDN1'} = 'dc=domain';
$Self->{'Customer::AuthModule::LDAP::UID1'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN1'} = 'CN=Domain Users,CN=Users,DC=domain';
$Self->{'Customer::AuthModule::LDAP::AccessAttr1'} = 'member';
$Self->{'Customer::AuthModule::LDAP::UserAttr1'} = 'DN';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN1'} = 'CN=OTRS Auth,OU=Special accounts,DC=domain';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw1'} = 'pass';
$Self->{'AuthModule::LDAP::AlwaysFilter1'} = '(mail=*)';
$Self->{'AuthModule::LDAP::AlwaysFilter1'} = '(objectclass=user)';

#CustomerUser
$Self->{CustomerUser1} = {
     Name => 'ABC Database',
     Module => 'Kernel::System::CustomerUser::LDAP',
     Params => {
     Host => 'dc.domain',
     BaseDN => 'dc=domain',
     SSCOPE => 'sub',
     UserDN => 'CN=OTRS Auth,OU=Special accounts,DC=domain',
     UserPw => 'pass',
     AlwaysFilter => '(mail=*)',
     AlwaysFilter => '(objectCategory=User)',
     # sizelimit => 0,
    },
# customer unique id
     CustomerKey => 'sAMAccountName',
     CustomerID => 'mail',
     CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
     CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
     CustomerUserSearchPrefix => '',
     CustomerUserSearchSuffix => '*',
     CustomerUserSearchListLimit => 1000,
     CustomerUserPostMasterSearchFields => ['mail'],
    CustomerUserNameFields => ['givenname', 'sn'],
 Map => [
     [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
     [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
     [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
     [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
     [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
     [ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
  ],
 };
то все в порядке, проходит авторизация, и в заявке показывается информация о клиенте.
Если же следом прописать еще и блок со второго домена

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

$Self->{'Customer::AuthModule2'} = 'Kernel::System::Auth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host2'} = 'dc.domain2';
<...>

$Self->{CustomerUser2} = {
Name => 'VDM Database',
Module => 'Kernel::System::CustomerUser::LDAP',
 <...>
};
то авторизация проходит, но информация о клиенте не отображается.
Всякого рода тетрис и перестановки местами модулей не помогают.

Ответить