Не удается прикрутить OTRS к Active Directory

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

Модератор: ykolesnikov

Ответить
DiJey
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 09 ноя 2012, 12:52

Не удается прикрутить OTRS к Active Directory

Сообщение DiJey » 23 янв 2013, 14:51

Default.pm стандартный без изменений.
Подскажите пожалуйста что не так, в браузере при попытке войти под логином из AD выдается следующее сообщение:
Panic, user authenticated but no user data can be found in OTRS DB!! Perhaps the user is invalid.
(/opt/otrs/Kernel/Config.pm):

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

package Kernel::Config;
use utf8;
sub Load {
    my $Self = shift;
    $Self->{'DatabaseHost'} = 'localhost';
    $Self->{'Database'} = 'otrs';
    $Self->{'DatabaseUser'} = 'otrs';
    $Self->{'DatabasePw'} = 12345;
    $Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";
    $Self->{Home} = '/opt/otrs';

    $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'} = '192.168.1.12';
    $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=domain, dc=local';
    $Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';

    $Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=helpdesk,OU=IAC,DC=domain,DC=local';
    $Self->{'AuthModule::LDAP::SearchUserPw'} = 'UserPassword';

    $Self->{'AuthModule::LDAP::Params'} = {
        port    => 389,
        timeout => 120,
        async   => 0,
        version => 3,
    };
    $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'} = '192.168.1.12';
    $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'ou=IAC,dc=domain,dc=local';
    $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

    # The following is valid but would only be necessary if the
    # anonymous user do NOT have permission to read from the LDAP tree
    $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=helpdesk,OU=IAC,DC=domain,DC=local';
    $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'UserPassword';
    $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
    UserFirstname => 'givenName',
    UserLastname => 'sn',
    UserEmail => 'mail',
    };
}
use strict;
use warnings;

use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.25 $)[1];

use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');

1;
(/var/log/httpd/error_log):

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

 Message: No UserID found for 'test'!                   (пользователь в АД есть)

 RemoteAddress: 192.168.213.220
 RequestURI: /otrs/index.pl

 Traceback (1550):
   Module: Kernel::System::User::UserLookup (v1.123) Line: 798
   Module: Kernel::System::Auth::Auth (v1.57) Line: 296
   Module: Kernel::System::Web::InterfaceAgent::Run (v1.69) Line: 204
   Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler (unknown version) Line: 46
   Module: (eval) (v1.91) Line: 204
   Module: ModPerl::RegistryCooker::run (v1.91) Line: 204
   Module: ModPerl::RegistryCooker::default_handler (v1.91) Line: 170
   Module: ModPerl::Registry::handler (v1.99) Line: 31

ERROR: OTRS-CGI-10 Perl: 5.10.1 OS: linux Time: Wed Jan 23 15:23:03 2013

baloo
OTRS Новобранец
Сообщения: 7
Зарегистрирован: 23 янв 2013, 11:06

Re: Не удается прикрутить OTRS к Active Directory

Сообщение baloo » 25 янв 2013, 10:31

Тоже долго мучался с AD. Победил исключительно методом проб и ошибок. Поэтому лучше приведу свой рабочий конфиг

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

package Kernel::Config;
 
sub Load {
    my $Self = shift;
	
    $Self->{'DatabaseHost'} = 'localhost';
    $Self->{'Database'} = 'otrs';
    $Self->{'DatabaseUser'} = 'Admin';
    $Self->{'DatabasePw'} = 'Admin';
    $Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";
    $Self->{Home} = '/OTRS/OTRS';
	
	$Self->{LogModule}          = 'Kernel::System::Log::File';
    $Self->{LogModule::LogFile} = '/OTRS/OTRS/var/log/otrs.log';
 
	# Authenticate customer users against an LDAP backend  #
	$Self->{CustomerUser} = {
		Name => 'Active Directory',
		Module => 'Kernel::System::CustomerUser::LDAP',
		Params => {
			Host => '192.168.0.2',
			BaseDN => 'dc=Domain,dc=Com',
			SSCOPE => 'sub',
			UserDN => 'cn=AdminAD,cn=Users,dc=Domain,dc=Com',
			UserPw => 'PasswordAdmin',
			AlwaysFilter => '(&(objectCategory=person)(|(objectClass=user))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
			SourceCharset => 'utf-8',
			DestCharset   => 'utf-8',
				},
		ReadOnly => 1,
		CustomerKey => 'sAMAccountName',
		CustomerID => 'mail',
		CustomerUserListFields => ['givenname', 'sn', 'mail'],
		CustomerUserSearchFields => ['displayName','sAMAccountName','givenName', 'sn', 'mail','description'],
		CustomerUserSearchPrefix => '',
		CustomerUserSearchSuffix => '*',
		CustomerUserPostMasterSearchFields => ['displayName','sAMAccountName','givenName','sn','mail','description'],
		CustomerUserNameFields => ['givenname', 'sn'],
		CustomerUserExcludePrimaryCustomerID => 0,
		CacheTTL => 120,
		Map => 	[
				[ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],
				[ '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' ],
				[ 'UserAddress', 'Address', 'postalAddress', 1, 0, 'var' ],
			   ],
	   };

    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.2';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=Domain,dc=Com';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=AdminAD,cn=Users,dc=Domain,dc=Com';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'PasswordAdmin';
}
 
# ---------------------------------------------------- #
# needed system stuff (don't edit this)                #
# ---------------------------------------------------- #
use strict;
use warnings;
use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.23 $)[1];
 
use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');
 
1;

DiJey
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 09 ноя 2012, 12:52

Re: Не удается прикрутить OTRS к Active Directory

Сообщение DiJey » 25 янв 2013, 15:42

Бяда, с вашими настройками у меня авторизцется толькоп по BD (не говорит даже того что у меня) не могли бы подробнее описать настройки в следущем теге, у меня есть ощущение, что я что-то не правильно, поменял ибо BD с LDAP у меня так и не синхронизировалась по пользователю по которуму пытаюсь войти.

Еще не могли бы сказать на сколько важно что AuthModule у вас идет после LDAP синхронизации, у меня наоборот...
# Authenticate customer users against an LDAP backend #
$Self->{CustomerUser} = {
Name => 'Active Directory',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '192.168.0.2',
BaseDN => 'dc=Domain,dc=Com',
SSCOPE => 'sub',
UserDN => 'cn=AdminAD,cn=Users,dc=Domain,dc=Com',
UserPw => 'PasswordAdmin',
AlwaysFilter => '(&(objectCategory=person)(|(objectClass=user))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
SourceCharset => 'utf-8',
DestCharset => 'utf-8',
},
ReadOnly => 1,
CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['givenname', 'sn', 'mail'],
CustomerUserSearchFields => ['displayName','sAMAccountName','givenName', 'sn', 'mail','description'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserPostMasterSearchFields => ['displayName','sAMAccountName','givenName','sn','mail','description'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserExcludePrimaryCustomerID => 0,
CacheTTL => 120,
Map => [
[ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],
[ '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' ],
[ 'UserAddress', 'Address', 'postalAddress', 1, 0, 'var' ],
],
};

baloo
OTRS Новобранец
Сообщения: 7
Зарегистрирован: 23 янв 2013, 11:06

Re: Не удается прикрутить OTRS к Active Directory

Сообщение baloo » 25 янв 2013, 17:01

в otrs.log что пишет?
по поводу AuthModule не могу ничего сказать, так пример конфига был отрыт в интернете.

DiJey
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 09 ноя 2012, 12:52

Re: Не удается прикрутить OTRS к Active Directory

Сообщение DiJey » 25 янв 2013, 17:26

baloo писал(а):в otrs.log что пишет?
по поводу AuthModule не могу ничего сказать, так пример конфига был отрыт в интернете.
Вы данные по LDAP свои вводили в какие поля какие данные (откуда взятые). Более подробно и не расчитываю.

otrs.log:
[Fri Jan 25 15:58:25 2013][Notice][Kernel::System::Auth::DB::Auth] User: test doesn't exist or is invalid!!! (REMOTE_ADDR: 192.168.213.220)
[Fri Jan 25 15:58:25 2013][Error][Kernel::System::User::UserLookup][798] No UserID found for 'test'!
[Fri Jan 25 15:58:34 2013][Notice][Kernel::System::Auth::DB::Auth] User: helpdesk authentication ok (REMOTE_ADDR: 192.168.213.220).
[Fri Jan 25 15:58:43 2013][Notice][Kernel::System::AuthSession::DB::RemoveSessionID] Removed SessionID 101022e2ee59b7a90f97873f29f7343561.
[Fri Jan 25 15:58:48 2013][Notice][Kernel::System::Auth::DB::Auth] User: p_test authentication with wrong Pw!!! (REMOTE_ADDR: 192.168.213.220)
[Fri Jan 25 15:58:59 2013][Notice][Kernel::System::Auth::DB::Auth] User: p_test authentication ok (REMOTE_ADDR: 192.168.213.220).
[Fri Jan 25 15:59:04 2013][Notice][Kernel::System::AuthSession::DB::RemoveSessionID] Removed SessionID 10574bb451effb0ce49dab497fddac3a89.
[Fri Jan 25 15:59:09 2013][Notice][Kernel::System::Auth::DB::Auth] User: test doesn't exist or is invalid!!! (REMOTE_ADDR: 192.168.213.220)
[Fri Jan 25 15:59:09 2013][Error][Kernel::System::User::UserLookup][798] No UserID found for 'test'!

DiJey
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 09 ноя 2012, 12:52

Re: Не удается прикрутить OTRS к Active Directory

Сообщение DiJey » 25 янв 2013, 17:49

Вообщем логи помогли с моим конфигом, в лдап авторизоватся начало но Orgonisation Unit нужно указывать верно иначе облом.
Как бы сделать что бы авторизовалось со всеми OU ?

baloo
OTRS Новобранец
Сообщения: 7
Зарегистрирован: 23 янв 2013, 11:06

Re: Не удается прикрутить OTRS к Active Directory

Сообщение baloo » 27 янв 2013, 14:01

я OU вообще не указываю, так как у нас юзеры состоят в разных группах.
Еще момент, обязательно необходимо сделать следующие действия: "Заходим «Администрирование» -> «Конфигурация системы». В выпадающем списке слева выбираем «Framework» и в появившемся списке справа выбираем «Frontend::Customer»: на CustomerPanelCreateAccount указываем «Нет» и жмем внизу кнопку «Обновить». (http://habrahabr.ru/post/125089/)

DiJey
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 09 ноя 2012, 12:52

Re: Не удается прикрутить OTRS к Active Directory

Сообщение DiJey » 28 янв 2013, 11:12

Да я эту мануалку видел, но не в курсе для чего это?
У меня еще вопрос возник, вдруг знаете, у меня когда заходит по LDAP пользователь попадает в агенты, а хотелось бы что бы попадал в клиенты и у него открывался клиентский интерфейс.
У тебя не из за OU случайно такой конфиг с фильтрами?

Ответить