Статья является продолжением статьи Интеграция OTRS v4 с Active Directory.
Создание Kerberos token
Для аутентификации Апачу необходим так называемый keytab. Чтобы его сгенерировать, необходим протокол (HTTP), полное доменное имя OTRS-сервера и имя домена. Название протокола и имя домена должны быть в верхнем регистре. Также необходим обычный пользователь домена.
В командной строке на контроллере домена выполняем следующее:
Ktpass -princ HTTP/helpdesksrv.test.testdomain.ru@TEST.TESTDOMAIN.RU -mapuser helpdesk@test.testdomain.ru -pass Qwerty123 -out C:\helpdesksrv.keytab
Позже я переименовал файл из helpdesksrv.keytab в apache.keytab и положил в папку c:\Apache2\conf\
Установка MIT Kerberos for Windows 4.0.1.
Качаем MIT Kerberos (http://web.mit.edu/kerberos/dist/kfw/4.0/kfw-4.0.1-i386.msi) и устанавливаем.
Настраиваем MIT Kerberos
Создаем пустой файл c:\Program Files (x86)\MIT\Kerberos\krb.ini и заполняем его:
[logging]
default = c:/otrs/var/log/krb5libs.log
kdc = c:/otrs/var/log/krb5kdc.log
admin_server = c:/otrs/var/log/kadmind.log
[libdefaults]
debug=true
default_keytab_file = c:/Apache2/conf/apache.keytab
default_realm = TEST.TESTDOMAIN.RU
dns_lookup_kdc = false
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
[realms]
TEST.TESTDOMAIN.RU = {
kdc = TESTDC1.test.testdomain.ru
admin_server = TESTDC1.test.testdomain.ru
default_domain = test.testdomain.ru
}
[domain_realm]
.test.testdomain.ru = TEST.TESTDOMAIN.RU
test.testdomain.ru = TEST.TESTDOMAIN.RU
[login]
krb4_convert = true
krb4_get_tickets = false
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
Качаем mod_auth_kerb.so (https://www.schaeuffelhut-berger.de/products/apache-ads-sso/mod_auth_kerb.so), копируем его в папку c:\Apache2\modules.
Настраиваем Apache
Модифицируем файл c:\Apache2\conf\httpd.conf. Добавляем следующие строки:
# загружаем модуль керберос
LoadModule auth_kerb_module modules/mod_auth_kerb.so
<Directory "c:/otrs/bin/cgi-bin/"> # в данном примере OTRS установлен в папку c:/otrs
AllowOverride None
AuthType Kerberos
AuthName "OTRS Kerberos Authentification"
Krb5Keytab c:/Apache2/conf/apache.keytab # указываем путь до keytab-файла
KrbAuthRealms TEST.TESTDOMAIN.RU
KrbMethodNegotiate on
KrbSaveCredentials off
Require valid-user
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>
Настраиваем OTRS
Редактируем файл c:\otrs\Kernel\Config.pm
файл c:\otrs\Kernel\Config.pm
# аутентификация + авторизация LDAP
#+ single sign on
# -------для агентов ---------
# $Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
# $Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} = '@TEST.TESTDOMAIN.RU';
# ------для пользователей ---------
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
$Self->{'Customer::AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@ EST.TESTDOMAIN.RU';
$Self->{CustomerUser} = {
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '10.0.0.11',
BaseDN => 'dc=test, dc=testdomain,dc=ru',
SSCOPE => 'sub',
UserDN => 'helpdesk@test.testdomain.ru',
UserPw => 'Qwerty123',
SourceCharset => 'utf-8',
DestCharset => 'utf-8',
},
CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown, required, storage-type
[ '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' ],
],
};
Перезапускаем службу Apache. Проверяем http://helpdesksrv/otrs/customer.pl. Нас перенаправит, строка в адресной строке браузера изменится на http://helpdesksrv/otrs/customer.pl?Action=CustomerTicketOverview;Subaction=MyTickets.
Устраняем кракозябры
Создаем заявку через вэб-интерфейс пользователем. Заходим в интерфейс агента и видим, что имя пользователя в заявке отображается некорректно.
Видимо, вставка параметра
$Self->{'DefaultCharset'} = 'utf-8';
в файле c:\otrs\Kernel\Config.pm проходит некорректно.
Модифицируем файл c:\otrs\Kernel\cpan-lib\Apache\DBI.pm
$dbh->{'mysql_enable_utf8'} = 1;
$dbh->do('SET NAMES utf8');
Перезапускаем службу Apache.
Все получилось.
Уведомление: Интеграция OTRS v4 с Active Directory | rakhimov
Уведомление: Настройка OTRS | rakhimov
3MSjJOeq2F4
73we 8BEv