OTRS 6 + LDAP

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

Модератор: ykolesnikov

Ответить
Makruder
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 07 фев 2018, 12:33

OTRS 6 + LDAP

Сообщение Makruder » 07 фев 2018, 12:58

Никак не могу понять как работает OTRS с LDAP
настраивал по http://vmkh.net/integratsiya-otrs-s-active-directory/ затем, когда не заработало, поправил LDAP по мануалу http://ftp.otrs.org/pub/otrs/doc/doc-ad ... n_book.pdf

OTRS_managers - группа в АД в которой находятся сотрудники Тех.поддержки
OTRS_users - группа в АД, в которой пользователи, которым можно заходить в OTRS как пользователи для подачи заявок

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

# для агентов
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '10.5.2.2';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=ab,dc=com';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthModule::LDAP::GroupDN'} = 'cn=OTRS_managers,ou=OTRS,ou=service,dc=ab,dc=com';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'help@ab.com';
$Self->{'AuthModule::LDAP::SearchUserPw'} = '123456';
$Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
sscope => 'sub'
};

# для синхронизации базы данных
$Self->{'AuthModule::UseSyncBackend'} = 'AuthSyncBackend';
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = 'ldap://10.5.2.2/';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=ab, dc=com';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=help,OU=OTRS,OU=service,DC=ab,DC=com';
# $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'help@ab.com';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = '123456';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};

$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
'users', 
];

# для аутентификации пользователей   ЭТУ ЧАСТЬ НАСТРОИЛ ЧЕРЕЗ админку, но параметры как тут
#$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
#$Self->{'Customer::AuthModule::LDAP::Host'} = '10.5.2.2';
#$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=ab,dc=com';
#$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
# $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=OTRS_users,OU=OTRS,OU=service,DC=ab,DC=com';
#$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
#$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
#$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'help@ab.com';
#$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = '123456';
#$Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '';
#$Self->{'Customer::AuthModule::LDAP::Params'} = {
#port => 389,
#timeout => 120,
#async => 0,
#version => 3,
#sscope => 'sub'
#};

# для пользователей 
$Self->{CustomerUser} = {
Name => 'LDAP Data Source',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
    Host => '10.5.2.2',
    BaseDN => 'DC=ab,DC=com',
    SSCOPE => 'sub',
    UserDN =>'help@ab.com',
    UserPw => '123456',
    AlwaysFilter => '',
    SourceCharset => 'utf-8',
    DestCharset => 'utf-8',
    Params=>{
    	port => 389,
    	timeout => 120,
    	async => 0,
    	version => 3,
    },
},

CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['cn', 'mail'],
#CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],    - этот параметр был на сайте vmkh.net в описании настройки 5-й версии, в мануале к 6-й не так поэтому исправил.
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
Map => [
# note: Login, Email and CustomerID needed!
#[ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],                      - тут тоже добавил параметры согласно документации к 6-й версии.
    [ 'UserTitle', 	'Title', 	'title', 		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 ],
#[ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var','',0 ],
    [ 'UserEmail', 	'Email', 	'mail', 		1, 1, 'var','',0 ],
    [ 'UserCustomerID', 'CustomerID', 	'mail', 		0, 1, 'var','',0 ],
    [ 'UserPhone', 	'Phone', 	'telephonenumber', 	1, 0, 'var','',0 ],
    [ 'UserAddress', 	'Address', 	'postaladdress', 	1, 0, 'var','',0 ],
    [ 'UserComment', 	'Comment', 	'description', 		1, 0, 'var','',0 ],
    ],
};
в итоге, если пользователь домена находится в доменной группе OTRS_managers, то логинится без проблем и для него в таблице агентов создается запись.
Но когда пытаюсь залогиниться обычным пользователем (который в группе OTRS_users) то получаю ошибку

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

[Wed Feb  7 14:35:58 2018][Notice][Kernel::System::Auth::LDAP::Auth] User: tester authentication failed, no LDAP group entry foundGroupDN='cn=OTRS_managers,ou=OTRS,ou=service,dc=ab,dc=com', Filter='(member=CN=tester,OU=DP,DC=ab,DC=com)'! (REMOTE_ADDR: 192.168.89.13).
[Wed Feb  7 14:35:58 2018][Error][Kernel::System::User::UserLookup][968] No UserID found for 'tester'!
т.е. получается система ищет только по группе агентов, а по таблице Customer не ищет вообще.
вставлял Perl-код для записи контрольных слов в лог-файл в new{...} в файлы LDAP.pm, в папках:Kernel/System/Auth, ../CustomerAuth, ../CustomerUser
выяснил, что код выполняется только в первом файле,до 2-го 3-го нет обращения.
что не так?
не могу же я пользователей в агенты записывать

если админом зайти в настройки - клиенты, то вижу пользователей из АД.
почему авторизации не проходит?

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

Re: OTRS 6 + LDAP

Сообщение alexus » 08 фев 2018, 22:27

А Вы клиентом по какому адресу заходите?
index.pl - это для агентов
customer.pl - для клиентов
С уважением,
Алексей Юсов

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? Спросите меня как!

Makruder
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 07 фев 2018, 12:33

Re: OTRS 6 + LDAP

Сообщение Makruder » 09 фев 2018, 10:01

Ага, случайно в трассировке ошибки увидел что объект Web класса создается агента...
в тех мануалах что смотрел по настройке отсылок даже не было что для юзеров другой адрес используется.
а я 2-е суток настройки мучил...
а оказывается в се замечательно работало...

website
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 16 фев 2018, 10:56

Re: OTRS 6 + LDAP

Сообщение website » 19 фев 2018, 06:19

Makruder писал(а):Ага, случайно в трассировке ошибки увидел что объект Web класса создается агента...
в тех мануалах что смотрел по настройке отсылок даже не было что для юзеров другой адрес используется.
а я 2-е суток настройки мучил...
а оказывается в се замечательно работало...
Добрый день! Как ты разобрался, у меня такая же проблема, АД база стоит в клиенты, но зайти с логинами клиента не могу
customer.pl там не могу собственно войти, такая же проблема как у тебя
Как ты решил проблему опиши пожалуйста, какой скрипт ставлял или где настраивал пути

Makruder
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 07 фев 2018, 12:33

Re: OTRS 6 + LDAP

Сообщение Makruder » 20 фев 2018, 13:44

для авторизации важно (посмотри мои настройки)
где комментарий "Для агентов" - это авторизация через АД агентов

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

# для агентов
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
а настройка, которая у меня за комментирован, это для авторизации пользователей.
ее я через админку настроил
далее важно как открывать страницу
http://..../otrs/index.pl - это страница для агентов
http://..../otrs/customer.pl - это страница для клиентов
на последнюю я, когда все заработало, редирект сделал, чтобы пользователи вводили только адрес домена, без хвостика otrs/customer.pl


а вообще для начала убери фильтры, в виде принадлежности агента и пользователя к группе. (могут быть проблемы из-за кодировки, если группа в АД находится в контейнере из русских букв)
и свои группы разместил в отдельном контейнере.

website
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 16 фев 2018, 10:56

Re: OTRS 6 + LDAP

Сообщение website » 28 фев 2018, 13:35

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

# $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=OTRS_users,OU=OTRS,OU=service,DC=ab,DC=com';
а там OTRS_users тут указан у тебя группа в АД? или сама настройка должна так состоять?
у меня АД выглядит так (рисунки 1,2 прикреплено)
http://ibb.co/dYwL3H
http://ibb.co/mszwcc

можете помочь у меня не получается зайти че-то можете подправить скрипт на мой АД

JetFX
OTRS Новобранец
Сообщения: 40
Зарегистрирован: 03 сен 2014, 09:06

Re: OTRS 6 + LDAP

Сообщение JetFX » 29 мар 2018, 10:21

Ребята, привет! Такая же фигня. Не работает интеграция. Сделал вроде все, как в мануале из 1 поста. Но не пускает ни в index.pl ни в customer.pl даже с учетными данными локального рута.
Ошибка в логах:

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

First bind failed! 80090308: LdapErr: DSID-0C09042F, comment: AcceptSecurityContext error, data 52e, v2580
Сам код скрипта:

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

# для агентов
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '10.10.1.12';
$Self->{'AuthModule::LDAP::BaseDN'} = 'DC=ucb, DC=local';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthModule::LDAP::GroupDN'} = 'CN=S_Security Department, OU=Security Groups, OU=Departments, OU-Groups, OU=UCB, DC=ucb, DC=local';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'helpdesk';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'Sha=aes3';
$Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
sscope => 'sub'
};

# для синхронизации базы данных
$Self->{'AuthModule::UseSyncBackend'} = 'AuthSyncBackend';
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = '10.10.1.12';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'DC=ucb, DC=local';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local';
# $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'Sha=aes3';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};

$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
'users', 
];

# для аутентификации пользователей   ЭТУ ЧАСТЬ НАСТРОИЛ ЧЕРЕЗ админку, но параметры как тут
#$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
#$Self->{'Customer::AuthModule::LDAP::Host'} = '10.10.1.12';
#$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=ucb, DC=local';
#$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
#$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=S_Security Department, OU=Security Groups, OU=Departments, OU-Groups, OU=UCB, DC=ucb, DC=local';
#$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
#$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
#$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local';
#$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'Sha=aes3';
#$Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '';
#$Self->{'Customer::AuthModule::LDAP::Params'} = {
#port => 389,
#timeout => 120,
#async => 0,
#version => 3,
#sscope => 'sub'
#};

# для пользователей 
$Self->{CustomerUser} = {
Name => 'LDAP Data Source',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
    Host => '10.10.1.12',
    BaseDN => 'DC=ucb, DC=local',
    SSCOPE => 'sub',
	UserDN =>'helpdesk@bki-okb.ru',
    UserPw => 'Sha=aes3',
    AlwaysFilter => '',
    SourceCharset => 'utf-8',
    DestCharset => 'utf-8',
    Params=>{
       port => 389,
       timeout => 120,
       async => 0,
       version => 3,
    },
},

CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['cn', 'mail'],
#CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],    - этот параметр был на сайте vmkh.net в описании настройки 5-й версии, в мануале к 6-й не так поэтому исправил.
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
Map => [
# note: Login, Email and CustomerID needed!
#[ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],                      - тут тоже добавил параметры согласно документации к 6-й версии.
    [ 'UserTitle',    'Title',    'title',       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 ],
#[ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var','',0 ],
    [ 'UserEmail',    'Email',    'mail',       1, 1, 'var','',0 ],
    [ 'UserCustomerID', 'CustomerID',    'mail',       0, 1, 'var','',0 ],
    [ 'UserPhone',    'Phone',    'telephonenumber',    1, 0, 'var','',0 ],
    [ 'UserAddress',    'Address',    'postaladdress',    1, 0, 'var','',0 ],
    [ 'UserComment',    'Comment',    'description',       1, 0, 'var','',0 ],
    ],
};


Учетка helpdesk - сервисная, специально заведена для отрс. Лежит в OU=Services Accounts.
Учетки агентов лежат в CN=S_Security Department
Остальные клиенты в OU=Departments


Подсобите, плиз, что делаю не так?
Заранее спасибо!
Используется OTRS 6

mms
OTRS Новобранец
Сообщения: 43
Зарегистрирован: 28 фев 2012, 17:54
Поблагодарили: 2 раза

Re: OTRS 6 + LDAP

Сообщение mms » 29 мар 2018, 13:06

JetFX писал(а): $Self->{'AuthModule::LDAP::SearchUserDN'} = 'helpdesk';
Такая ошибка обычно возникает при неправильно указанных SearchUserDN/SearchUserPw.
Должно быть указано полное имя, пример:

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

$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'cn=otrs_user,ou=Other,ou=Services,dc=contoso,dc=com';
Посмотрите наши заметки по подключению к Active Directory, возможно пригодится.
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)

JetFX
OTRS Новобранец
Сообщения: 40
Зарегистрирован: 03 сен 2014, 09:06

Re: OTRS 6 + LDAP

Сообщение JetFX » 29 мар 2018, 14:41

mms писал(а):
JetFX писал(а): $Self->{'AuthModule::LDAP::SearchUserDN'} = 'helpdesk';
Такая ошибка обычно возникает при неправильно указанных SearchUserDN/SearchUserPw.
Должно быть указано полное имя, пример:

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

$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'cn=otrs_user,ou=Other,ou=Services,dc=contoso,dc=com';
Посмотрите наши заметки по подключению к Active Directory, возможно пригодится.

Почитал Ваш мануал, перепроверил все. Вроде все везде правильно, OU-шки тоже везде правильные. Не пойму в чем дело. Может с сервера OTRS до сервера AD какой то спец доступ нужен...
Используется OTRS 6

mms
OTRS Новобранец
Сообщения: 43
Зарегистрирован: 28 фев 2012, 17:54
Поблагодарили: 2 раза

Re: OTRS 6 + LDAP

Сообщение mms » 29 мар 2018, 14:45

что у вас указано в $Self->{'AuthModule::LDAP::SearchUserDN'} ?
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)

JetFX
OTRS Новобранец
Сообщения: 40
Зарегистрирован: 03 сен 2014, 09:06

Re: OTRS 6 + LDAP

Сообщение JetFX » 29 мар 2018, 15:16

mms писал(а):что у вас указано в $Self->{'AuthModule::LDAP::SearchUserDN'} ?

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

$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local';
Проверил, вроде все правильно.
Изображение

Собственно, helpdesk лежит в папке Services Accounts, а все остальные пользователи и агенты лежат в Departments

Что-то изображение никак не могу вставить(((
Используется OTRS 6

mms
OTRS Новобранец
Сообщения: 43
Зарегистрирован: 28 фев 2012, 17:54
Поблагодарили: 2 раза

Re: OTRS 6 + LDAP

Сообщение mms » 29 мар 2018, 15:29

Проверьте, есть ли у пользователя, под учетной записью которого вы делаете поиск по дереву LDAP, соответствующие права.
Либо утилитой ldapsearch, либо при помощи вот такого нехитрого перлового скрипта:

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

#!/usr/bin/perl

use warnings;
use strict;
use utf8;
use Net::LDAP;

my $ldap = Net::LDAP->new( 'company.ru' );

my $mesg = $ldap->bind('cn=SearchUser,ou=Other,ou=Services,dc=company,dc=ru',password => 'SearchPassword') or die "Can't bind!"

$mesg = $ldap->search(
    base => 'dc=company,dc=ru',
    filter => "(&(sAMAccountName=SearchUser))",
);
$mesg->code && die $mesg->error;
foreach my $entry ($mesg->entries) { $entry->dump; }
$mesg = $ldap->unbind;
Поправьте имя хоста и данные учетных записей на ваши.
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)

JetFX
OTRS Новобранец
Сообщения: 40
Зарегистрирован: 03 сен 2014, 09:06

Re: OTRS 6 + LDAP

Сообщение JetFX » 29 мар 2018, 15:33

Ковырял ковырял, Теперь вот такая ошибка:

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

Thu Mar 29 15:30:50 2018	error	OTRS-CGI-99	No UserID found for 'ikasatkin'!
Thu Mar 29 15:30:50 2018	error	OTRS-CGI-99	Search failed! base='OU=Security Department, OU=Departments, OU=Groups, OU=UCB, DC=ucb, DC=local', filter='(member=CN=Igor Kasatkin,OU=Security Department,OU=Departments,OU=Users1,OU=UCB,DC=ucb,DC=local)', 0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of:
Скрипт немного подправил:

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

# для агентов
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '10.10.1.12';
$Self->{'AuthModule::LDAP::BaseDN'} = 'DC=ucb, DC=local';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthModule::LDAP::GroupDN'} = 'OU=Security Department, OU=Departments, OU=Groups, OU=UCB, DC=ucb, DC=local';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'Sha=aes3';
$Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
sscope => 'sub',
};

# для синхронизации базы данных
$Self->{'AuthModule::UseSyncBackend'} = 'AuthSyncBackend';
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = '10.10.1.12';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'DC=ucb, DC=local';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local';
# $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'Sha=aes3';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};
$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
'users', 
];

# для аутентификации пользователей   ЭТУ ЧАСТЬ НАСТРОИЛ ЧЕРЕЗ админку, но параметры как тут
#$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
#$Self->{'Customer::AuthModule::LDAP::Host'} = '10.10.1.12';
#$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=ucb, DC=local';
#$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
#$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'OU=Departments, OU=Groups, OU=UCB, DC=ucb, DC=local';
#$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
#$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
#$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local';
#$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'Sha=aes3';
#$Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '';
#$Self->{'Customer::AuthModule::LDAP::Params'} = {
#port => 389,
#timeout => 120,
#async => 0,
#version => 3,
#sscope => 'sub'
#};

# для пользователей 
$Self->{CustomerUser} = {
Name => 'LDAP Data Source',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
    Host => '10.10.1.12',
    BaseDN => 'DC=ucb, DC=local',
    SSCOPE => 'sub',
	UserDN =>'CN=helpdesk, OU=Services Accounts, OU=Users1, OU=UCB, DC=ucb, DC=local',
    UserPw => 'Sha=aes3',
    AlwaysFilter => '',
    SourceCharset => 'utf-8',
    DestCharset => 'utf-8',
    Params=>{
       port => 389,
       timeout => 120,
       async => 0,
       version => 3,
    },
},

CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['cn', 'mail'],
#CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],    - этот параметр был на сайте vmkh.net в описании настройки 5-й версии, в мануале к 6-й не так поэтому исправил.
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
Map => [
# note: Login, Email and CustomerID needed!
#[ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],                      - тут тоже добавил параметры согласно документации к 6-й версии.
    [ 'UserTitle',    'Title',    'title',       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 ],
#[ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var','',0 ],
    [ 'UserEmail',    'Email',    'mail',       1, 1, 'var','',0 ],
    [ 'UserCustomerID', 'CustomerID',    'mail',       0, 1, 'var','',0 ],
    [ 'UserPhone',    'Phone',    'telephonenumber',    1, 0, 'var','',0 ],
    [ 'UserAddress',    'Address',    'postaladdress',    1, 0, 'var','',0 ],
    [ 'UserComment',    'Comment',    'description',       1, 0, 'var','',0 ],
    ],
};
Используется OTRS 6

mms
OTRS Новобранец
Сообщения: 43
Зарегистрирован: 28 фев 2012, 17:54
Поблагодарили: 2 раза

Re: OTRS 6 + LDAP

Сообщение mms » 29 мар 2018, 15:39

Зачем вам в AuthSyncModule использовать AccessAttr?

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

$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
Мне кажется, эта строка лишняя
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)

JetFX
OTRS Новобранец
Сообщения: 40
Зарегистрирован: 03 сен 2014, 09:06

Re: OTRS 6 + LDAP

Сообщение JetFX » 29 мар 2018, 15:44

mms писал(а):Зачем вам в AuthSyncModule использовать AccessAttr?

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

$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
Мне кажется, эта строка лишняя

Убрал, ничего не поменялось.

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

Search failed! base='OU=Security Department, OU=Departments, OU=Groups, OU=UCB, DC=ucb, DC=local', filter='(member=CN=helpdesk,OU=Services Accounts,OU=Users1,OU=UCB,DC=ucb,DC=local)', 0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of:
Права у helpdesk на чтение каталога AD есть.
Используется OTRS 6

mms
OTRS Новобранец
Сообщения: 43
Зарегистрирован: 28 фев 2012, 17:54
Поблагодарили: 2 раза

Re: OTRS 6 + LDAP

Сообщение mms » 29 мар 2018, 15:55

еще, обратил внимание, у вас в AuthModule::LDAP::GroupDN не задано имя (CN) группы, в которую должны входить пользователи OTRS, например:

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

$Self->{'AuthModule::LDAP::GroupDN'} = 'CN=OTRS,OU=Company,DC=corp,DC=local';
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)

JetFX
OTRS Новобранец
Сообщения: 40
Зарегистрирован: 03 сен 2014, 09:06

Re: OTRS 6 + LDAP

Сообщение JetFX » 29 мар 2018, 16:02

mms писал(а):еще, обратил внимание, у вас в AuthModule::LDAP::GroupDN не задано имя (CN) группы, в которую должны входить пользователи OTRS, например:

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

$Self->{'AuthModule::LDAP::GroupDN'} = 'CN=OTRS,OU=Company,DC=corp,DC=local';
Пробовал указывать, и так и сяк, по разному, вообще ноль. Ладно, спасибо за помощь! Буду ковырять дальше, чтобы Вас не отвлекать.
Используется OTRS 6

JetFX
OTRS Новобранец
Сообщения: 40
Зарегистрирован: 03 сен 2014, 09:06

Re: OTRS 6 + LDAP

Сообщение JetFX » 30 мар 2018, 14:15

Ребята, всем спасибо, все заработало!
Какой то косяк был в группе

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

CN=S_Security Department
Пересоздали группу с другим названием, все ок стало!
Используется OTRS 6

Ответить