интеграция с доменом на win2008

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

Модератор: ykolesnikov

Ответить
ant000
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 10 окт 2010, 17:27

интеграция с доменом на win2008

Сообщение ant000 » 10 окт 2010, 17:36

Здравствуйте, есть проблема, домен и сервер OTRS 2.4.8 существуют на разных IP, пользователи домена становятся кустомерами в отрс. Как настроить сквозную авторизацию для них?
Нужно ли вгонять в домен сервер с отрс?
Что надо прописывать в $Self->{CustomerPanelLoginURL} ?

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

Re: интеграция с доменом на win2008

Сообщение alexus » 10 окт 2010, 19:51

Вгонять в домен не надо. Прочитайте вот этот раздел документации, там всё прозрачно. Обратите только внимание на указание корректное указание OU, которые имеют место быть в вашем домене.

С уважением,
OTRS.ru
С уважением,
Алексей Юсов

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

ant000
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 10 окт 2010, 17:27

Re: интеграция с доменом на win2008

Сообщение ant000 » 11 окт 2010, 17:24

вероятно читал, да не вычитал!! ou пока вообще не задаю, пусть ищет по всему домену
а при залогинивании выдаёт ошибку: User: No $ENV{REMOTE_USER} or $ENV{HTTP_REMOTE_USER} !(REMOTE_ADDR: ).

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

Re: интеграция с доменом на win2008

Сообщение alexus » 11 окт 2010, 17:45

Проверьте
Параметры конфигурации: Framework -> Frontend::Customer::Auth. Такая ошибка - следствие рассогласования типов авторизации.
С уважением,
Алексей Юсов

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

ant000
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 10 окт 2010, 17:27

Re: интеграция с доменом на win2008

Сообщение ant000 » 11 окт 2010, 19:33

пока закоментировал теперь:
000004DC: LdapErr: DSID-0C0906DD, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1772�
и
CustomerUser: test_user authentication failed, no LDAP entry found!BaseDN='dc=xxx,dc=ru', Filter='(&(uid=test_user)(mail=*))', (REMOTE_ADDR: 192.168.1.123).

соответсвенно при попытке авторизации по http://..... /customer.pl

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

Re: интеграция с доменом на win2008

Сообщение alexus » 11 окт 2010, 21:54

Покажите Ваш config.pm в части LDAP
С уважением,
Алексей Юсов

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

Sacrificer
OTRS Новобранец
Сообщения: 50
Зарегистрирован: 10 окт 2010, 08:13
Откуда: Москва

Re: интеграция с доменом на win2008

Сообщение Sacrificer » 12 окт 2010, 03:38

Алексей

Есть вероятность того, что вы опубликуете рабочий конфиг с русскими пояснениями того что касается LDAP? Хотелось бы что бы там было следующее:
1) Три домена LDAP, причем в одном случае имеют доступ пользователи находящиеся в OU, в другом - находящиеся в группе (в чем кстати разница между клиентом и агентом?), также было бы отлично если бы был разъяснен механизм работы LDAP (мне не понятна фраза о том что пользователь был авторизован но его нет в DB???, тут очевидно поменялся в 2.4.8 механизм попадания/создания авторизованного пользователя в базе OTRS (My SQL))
2) Настройки SMTP

IMHO два критичных для всех пункта на начальном этапе

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

Re: интеграция с доменом на win2008

Сообщение alexus » 12 окт 2010, 07:38

Судя по количеству вопросов по данным разделам, имеет смысл перевести раздел документации в части LDAP и пояснения в конфиге. Мы оттестируем несколько вариантов и выложим все в разделе Howto.
Про SMTP думаю есть смысл сделать краткий howto на тему начальной установки.
С уважением,
Алексей Юсов

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

ULiX
OTRS Новобранец
Сообщения: 45
Зарегистрирован: 12 окт 2010, 08:56
Контактная информация:

Re: интеграция с доменом на win2008

Сообщение ULiX » 14 окт 2010, 05:59

ant000 писал(а):пока закоментировал теперь:
000004DC: LdapErr: DSID-0C0906DD, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1772�
и
CustomerUser: test_user authentication failed, no LDAP entry found!BaseDN='dc=xxx,dc=ru', Filter='(&(uid=test_user)(mail=*))', (REMOTE_ADDR: 192.168.1.123).

соответсвенно при попытке авторизации по http://..... /customer.pl
Ох... вспоминается всё это с трудом, но вспоминается... Благо у меня уже всё настроено...
Ответ кроется в сообщении об ошибке... в частности (uid=test_user).
Тут нужны тонкости познания ActiveDirectory, ибо логин пользователя в мелгомягком LDAP хранится в поле "sAMAccountName".
Нужно изменить параметры в авторизации, синхронизации, как для агентов, так и для пользователей.

Кстати...
Sacrificer писал(а):(в чем кстати разница между клиентом и агентом?
Клиент доставляет хлопоты агентам, которые должны за клиентом всё дерьмо разгрести.

По порядочку, что предлагается по умолчанию и на что заменяется для виндового LDAP:

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

#$Self->{'AuthModule::LDAP::UID'} = 'uid';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';

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

#$Self->{'AuthModule::LDAP::AccessAttr'} = 'memberUid';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';

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

#$Self->{'AuthModule::LDAP::UserAttr'} = 'UID';
$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';

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

$Self->{'AuthModule::LDAP::AlwaysFilter'} = '(objectCategory=user)';
Это позволит откинуть все нежелательные элементы, как то группы безопасности, контакты и компьютеры.

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

#$Self->{'AuthSyncModule::LDAP::UID'} = 'uid';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

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

#$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'memberUid';
$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';

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

$Self->{'AuthSyncModule::LDAP::AlwaysFilter'} = '(objectCategory=user)';
И всё тоже самое для клиентов

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

$Self->{'Customer::AuthModule::LDAP::UID'} = 'samaccountname';
$Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '(objectCategory=user)';

$Self->{CustomerUser} = {
<...>
    Params => {
    <...>
      AlwaysFilter => '(objectCategory=user)',
    },
    CustomerKey => 'samaccountname',
    CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
    <...>
    Map => [
      <...>
      [ 'UserLogin', 'CustomerUserLogin', 'sAMAccountName', 1, 1, 'var' ],
      [ 'UserDescription', 'Description', 'description', 1, 0, 'var' ],
      [ 'UserOffice', 'Office', 'physicalDeliveryOfficeName', 1, 0, 'var' ],
      <...>
    ]
<...>
}
Надеюсь, что ничего не пропустил.

Что касается нескольких доменов. Я тут копался на днях и нашёл как настроить несколько модулей авторизации и синхронизации.
Описал вкратце тут:
Распределение ролей агентов

Каждый из них можно настроить на свою базу LDAP или DB по желанию.
У каждого модуля свои независимые настройки.

В частности.
Sacrificer писал(а):причем в одном случае имеют доступ пользователи находящиеся в OU
Для этого нужно в модуле авторизации задать DN (distinguishedName) требуемого OU в параметре авторизации:
$Self->{'AuthModule::LDAP::BaseDN'} = 'OU=Агенты OTRS,dc=domain, dc=ru';
И не задавать параметр:
$Self->{'AuthModule::LDAP::GroupDN'}
Тогда не будет проверяться членство в группе, а выборка юзеров будет производится из указанного OU.

GroupDN нужно также и в параметрах синхронизации сменить.
$Self->{'AuthSyncModule::LDAP::BaseDN'}

Если тоже самое нужно проделать с клиентами, то и там меняем
$Self->{'Customer::AuthModule::LDAP::BaseDN'}
Sacrificer писал(а):(мне не понятна фраза о том что пользователь был авторизован но его нет в DB???, тут очевидно поменялся в 2.4.8 механизм попадания/создания авторизованного пользователя в базе OTRS (My SQL)
А до этого какой версией пользовался?
Или может опять же не настроена синхронизация.
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';

Что-то помню когда обновлял с 2.3.4 тоже с этим столкнулся... Вроде бы модуль переименовался...
Посмотрел сейчас Config.pm от своей старой OTRS...
Раньше синхронизация настраивалась другими параметрами

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

    $Self->{'UserSyncLDAPMap'} = {
        # DB -> LDAP
	UserLastname => 'givenName',
	UserFirstname => 'sn',
        UserEmail => 'mail',
    };
Почитай документацию. Придется немного подправить.
Сейчас у меня так:

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

    $Self->{'AuthSyncModule::LDAP::UserSyncMap'}={
        # DB -> LDAP
           UserLastname => 'givenName',
           UserFirstname => 'sn',
           UserEmail => 'mail',
    };
Ну и в принципе в прежних версиях не было модуля $Self->{'AuthSyncModule'}, так что все его настройки нужно добавить в конфиг, иначе бачить не будет.

Вроде ответил на все вопросы с LDAP...
C SMTP всё проще.

В конфиге задать следующие параметры:

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

    $Self->{"SendmailModule"} = "Kernel::System::Email::SMTP";
    $Self->{"SendmailModule::Host"} = "smtp.domain.ru";
    $Self->{"SendmailModule::AuthUser"} = "";
    $Self->{"SendmailModule::AuthPassword"} = "";
smtp.domain.ru - сервер SMTP, можно наверно и IP указат. По умолчанию юзается порт 25.
У нас внутренний smtp сервер не требует авторизации поэтому имя и пароль пустые.
Если используются всякие там примочки, типо сертификатов, то это уже в мануал.

Надеюсь, что мой ответ решит все твои проблемы.
Я не флудер, у меня просто не получаются маленькие посты.

Sacrificer
OTRS Новобранец
Сообщения: 50
Зарегистрирован: 10 окт 2010, 08:13
Откуда: Москва

Re: интеграция с доменом на win2008

Сообщение Sacrificer » 14 окт 2010, 06:50

ULiX Респект!
Вот если бы ты раньше такое написал :), а так я такой же мануал написал пару дней назад, когда разобрался, его alexus куда то забрал на проверку...

У меня с почтой для версии 2.4.8 проблемы с отправкой (мой пост про IE8), никак не могу побороть! Телефонный звонок работает, а ответить пустым письмом - белый экран.

У тебя 2.4.8 на какой ОС крутится? не на Win?

Что характерно с OTRS 3b5 такой проблемы нет, все отлично работает!

ULiX
OTRS Новобранец
Сообщения: 45
Зарегистрирован: 12 окт 2010, 08:56
Контактная информация:

Re: интеграция с доменом на win2008

Сообщение ULiX » 14 окт 2010, 09:00

Sacrificer писал(а):его alexus куда то забрал на проверку
Кажется я его нашел:
ВКЛЮЧЕНИЕ АУТЕНФИКАЦИИ LDAP ДЛЯ АГЕНТОВ OTRS

Извините, что с опозданием :D

У меня есть допоонения по поводу твоей статьи.
Использование userPrincipalName вместо sAMAccountName в:
$Self->{'AuthModule::LDAP::UID'} = 'userPrincipalName';

Потребует добавлять суфикс к логину
user@UPNSuffix
или же обязательному определению:
$Self->{'AuthModule::LDAP::UserSuffix'}

Если же использовать sAMAccountName определять UserSuffix не нужно.
Однако у пользователя явно намечается использование нескольких доменов, и как следствие несколько модулей авторизации и синхронизации, и разумно было бы определить UserSuffix для каждого модуля LDAP авторизации и задать именно userPrincipalName.
В этом случае не будет конфликта между пользователями с одним логином в разных доменах.
# !! Русские буквы не поддерживаются в названиях UO и группах
Для использования русских символов есть два пути:

1. Выделение блока кода:
use utf8;
.... тут команда с русскими символами ...
no utf8;

2. Использование псевдокодов как в примере:

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

    $Self->{'DefaultUsedLanguages'} = {.
        ru => 'Russian (&#x0420;&#x0443;&#x0441;&#x0441;&#x043a;&#x0438;&#x0439;)',
        'gob'=> 'Russian (Goblin)'
    };
Вот это
&#x0420;&#x0443;&#x0441;&#x0441;&#x043a;&#x0438;&#x0439;
Равно фразе:
"Русский"

Ну это уже кому как удобней... :lol:

ну и опять же можно не определять параметр:
$Self->{'AuthModule::LDAP::GroupDN'}
И задать OU с помощью
$Self->{'AuthModule::LDAP::BaseDN'}

пользователю на выбор, а выбрать как видно из вопроса он хочет оба варианта.

В случае потери админского контроля можно сделать следующее:

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

Этот параметр отвечает за выдачу прав rw в указанном списке групп при первой авторизации пользователя.
Добавил такую строчку, и кто первый авторизуется как агент, то и админ.
Потом. конечно, нужно убрать из списка 'admin'.

Есть другой путь, который пока мало где описан:

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

    # AuthSyncModule::LDAP::UserSyncGroupsDefinition
    # (If "LDAP" was selected for AuthModule and you want to sync LDAP
    # groups to otrs groups, define the following.)
    $Self->{'AuthSyncModule::LDAP::UserSyncGroupsDefinition'} = {
        # ldap group
        'CN=Domain Admins,CN=Users,DC=domain,DC=ru' => {
            # otrs group
            'admin' => {
                # permission
                rw => 1,
                ro => 1,
            },
            'faq' => {
                rw => 0,
                ro => 1,
            },
        },
    };
Тут все просто, синхронизация происходит при каждом логоне, а не только при первой инициализации пользователя.
Данный пример делает всех членов группы Domain Admins админами OTRS

Важное замечание.
В отличии от Windows OTRS не умеет проверять вложения.
Так если пользователь user является членом группы безопасночти Admin, а та в свою очередь включена в группу Domain Admins, то с точки зрения OTRS user не является членом группы Domain Admins.
Sacrificer писал(а):У тебя 2.4.8 на какой ОС крутится? не на Win?
У меня 2.4.7 на Linux и пока не спешу обновляться...

Каждое обновление вызывает у меня большой стресс...
Сначала приходится делать копию базы, потом тестировать новую версию...
Потом переписывать патчи...
А ещё у нас ORACLE!!!
Я не флудер, у меня просто не получаются маленькие посты.

Ответить