Настройка сквозной авторизации OTRS (Single Sign On)

Статья является продолжением статьи Интеграция 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

1 Настройка сквозной авторизации OTRS (Single Sign On)

Позже я переименовал файл из 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) и устанавливаем.

2 Настройка сквозной авторизации OTRS (Single Sign On)3 Настройка сквозной авторизации OTRS (Single Sign On)4 Настройка сквозной авторизации OTRS (Single Sign On)5 Настройка сквозной авторизации OTRS (Single Sign On)

Настраиваем 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.

6 Настройка сквозной авторизации OTRS (Single Sign On)

Устраняем кракозябры

Создаем заявку через вэб-интерфейс пользователем. Заходим в интерфейс агента и видим, что имя пользователя в заявке отображается некорректно.

7 Настройка сквозной авторизации OTRS (Single Sign On)

Видимо, вставка параметра

$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.

8 Настройка сквозной авторизации OTRS (Single Sign On)9 Настройка сквозной авторизации OTRS (Single Sign On)

Все получилось.

 

 

 

4 thoughts on “Настройка сквозной авторизации OTRS (Single Sign On)

  1. Уведомление: Интеграция OTRS v4 с Active Directory | rakhimov

  2. Уведомление: Настройка OTRS | rakhimov

  3. И вы также захотите к нам подключиться только по этому вызову  и чтобы тоже поднять свой уровень проживания. http://dashsayana.ru?h1TiF on said:

    73we 8BEv

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.