ldap Присвоение клиентам групп по умолчанию.

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

Модератор: ykolesnikov

Ответить
wvizard
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 27 мар 2017, 10:34

ldap Присвоение клиентам групп по умолчанию.

Сообщение wvizard » 27 мар 2017, 10:43

Здраствуйте.
Помогите пожалуйста разобраться.
Есть несколько хранилищ данных(external-backends) клиентов Типы хранилищ ldap.
Есть ли возможность настроить группы клиентов в зависимости от хранилища.
Или каждый раз когда в ldap, будет создан клиент затем в ручную необходимо через панель администрирования добавить клиенту группу.
Спасибо.

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

Re: ldap Присвоение клиентам групп по умолчанию.

Сообщение alexus » 27 мар 2017, 11:56

А зачем Вам группы для клиентов?
С уважением,
Алексей Юсов

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

wvizard
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 27 мар 2017, 10:34

Re: ldap Присвоение клиентам групп по умолчанию.

Сообщение wvizard » 27 мар 2017, 15:16

Здраствуйте. Разные домены разные направления, разные группы пользователей разные лини тех. поддержки.
Соответственно или вес это ручками править. или найти решения проблемы. Если для разных external-backends назначить разные группы "по умолчанию", то можно разные очереди создавать и привязывать их к группам.
Спасибо.

wvizard
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 27 мар 2017, 10:34

Re: ldap Присвоение клиентам групп по умолчанию.

Сообщение wvizard » 28 мар 2017, 12:35

Доброго времени суток.
Пытаюсь практически тоже самое провернуть на агентах. Вроде эта возможность даже за документированна. Не выходит аленький цветочек. Выкладываю листинг Config.pm. Может быть кто нибудь сталкивался или я что-то делаю не правильно. Пробую разными способами. Клиенты и агенты видны в отрс. Права на группы ни в какую. Спасибо.

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

$Self->{'DefaultCharset'} = 'utf-8';

# задействуем LDAP аутентификацию для бэкэнд агентов
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = 'xxx.xxx.xxx.10';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=local,dc=xxx,dc=xxx';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';

# проверка, присутствует ли пользователь в группе, если да, то доступ в OTRS разрешен
$Self->{'AuthModule::LDAP::GroupDN'} = 'cn=OTRSagents,cn=Users,dc=xxx,dc=xxx,dc=xx';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';

$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=xxxx,CN=Users,DC=xxx,DC=xxx,DC=xxx';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxxxxxxxxxx';

$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
sscope => 'sub'
},

# Agent data sync against LDAP
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = 'xxx.xxx.xxx.xxx';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'DC=local,DC=xxx,DC=xxx';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=xxxx,CN=Users,DC=local,DC=xxx,DC=xxx';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxxxxxxxxxxxx';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
        UserFirstname => 'givenName',
        UserLastname => 'sn',
        UserEmail => 'mail',
};

$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
'users','GANP_helpdesk',
];
$Self->{'AuthSyncModule::LDAP::UserSyncGroupsDefinition'} = {
        # ldap group
        'cn=OTRSagents,cn=Users,DC=local,DC=xxx,DC=xxx' => {
            # otrs group
            'GANP_helpdesk' => {
                # permission
                rw => 1,
              #  ro => 1,
            },
        },
};
#AuthSyncModule::LDAP::UserSyncGroupsDefinition
$Self->{'AuthSyncModule::LDAP::UserSyncAttributeGroupsDefinition'} = {
        # ldap attribute
        'mail' => {
            # ldap attribute value
            'test@test.com' => {
                # otrs group
                'GANP_helpdesk' => {
                    # permission
                    rw => 1
#                    ro => 1,
                }
             }
        }
};

#    $Self->{'AuthSyncModule::LDAP::UserSyncGroupsDefinition'} = {
#        # ldap group
#        'CN=GANP_AGENT,CN=Users,DC=local,DC=xxx,DC=xxx' => {
#            # otrs group
#            'GANP_helpdesk' => {
#                # permission
#                rw => 1,
#                ro => 1,
#            },
#            'faq' => {
#                rw => 0,
#                ro => 1,
#            },
#        },
#        'cn=agent2,o=otrs' => {
#            'users' => {
#                rw => 1,
#                ro => 1,
#            },
#        }
#    };

#
#
# Authenticate customer users against an LDAP backend  #
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP'; #LDAP
$Self->{'Customer::AuthModule::LDAP::Host'} ='xxx.xxx.xxx.xxx';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=local,DC=xxx,DC=xxx';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=xxxx,CN=Users,DC=local,DC=xxx,DC=xxx';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxxxxxxx';

$Self->{CustomerUser} = {
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
        Host => 'xxx.xxx.xxx.xxx',
        BaseDN => 'OU=users,OU=fil1,DC=local,DC=xxx,DC=xxx',
        SSCOPE => 'sub',
        UserDN => 'CN=xxxx,CN=Users,DC=local,DC=xxx,DC=xxx',
        UserPw => 'xxxxxxxxxxxxx',
        AlwaysFilter => '(&(samAccountType=805306368)(primaryGroupID=513)(mail=*)(company=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
        SourceCharset => 'utf-8',
        DestCharset => 'utf-8',
},

      ReadOnly => 1,
      CustomerKey => 'sAMAccountName',
      CustomerID => 'company',
      #CustomerUserListFields => ['givenname', 'sn', 'mail'],
      CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
      CustomerUserSearchFields => ['displayName','sAMAccountName','givenName', 'sn', 'mail','description','company'],
      CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
      CustomerUserSearchPrefix => '',
      CustomerUserSearchSuffix => '*',
      CustomerUserSearchListLimit => 10000,
      CustomerUserPostMasterSearchFields => ['displayName','sAMAccountName','givenName','sn','mail','description','company'],
      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', 'company', 0, 1, 'var' ],
         ],
};

#fil2
$Self->{CustomerUser2} = {
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
        Host => 'xxx.xxx.xxx.xxx',
        BaseDN => 'OU=users,OU=fil2,DC=local,DC=xxx,DC=xxx',
        SSCOPE => 'sub',
        UserDN => 'CN=xxxx,CN=Users,DC=local,DC=xxx,DC=xxx',
        UserPw => 'xxxxxxxxxxxxx',
        AlwaysFilter => '(&(samAccountType=805306368)(primaryGroupID=513)(mail=*)(company=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
        SourceCharset => 'utf-8',
        DestCharset => 'utf-8',
},

      ReadOnly => 1,
      CustomerKey => 'sAMAccountName',
      CustomerID => 'company',
      #CustomerUserListFields => ['givenname', 'sn', 'mail'],
      CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
      CustomerUserSearchFields => ['displayName','sAMAccountName','givenName', 'sn', 'mail','description','company'],
      CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
      CustomerUserSearchPrefix => '',
      CustomerUserSearchSuffix => '*',
      CustomerUserSearchListLimit => 10000,
      CustomerUserPostMasterSearchFields => ['displayName','sAMAccountName','givenName','sn','mail','description','company'],
      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', 'company', 0, 1, 'var' ],
         ],
};

#fil2

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

Re: ldap Присвоение клиентам групп по умолчанию.

Сообщение alexus » 28 мар 2017, 14:24

wvizard писал(а):Здраствуйте. Разные домены разные направления, разные группы пользователей разные лини тех. поддержки.
Соответственно или вес это ручками править. или найти решения проблемы. Если для разных external-backends назначить разные группы "по умолчанию", то можно разные очереди создавать и привязывать их к группам.
Спасибо.
Для агентов группы - ок, понятно, это без вариантов. Для КЛИЕНТОВ группы зачем нужны?
С уважением,
Алексей Юсов

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

wvizard
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 27 мар 2017, 10:34

Re: ldap Присвоение клиентам групп по умолчанию.

Сообщение wvizard » 29 мар 2017, 04:48

Предположим есть две компании. У которых два разных домена AD. Клиенты первой компании в ходят в группу user1 клиенты второй компании в группу user2. у группы user1 свой список очередей у группы user2 свой список очередей. Тоже самое и с агентами.

wvizard
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 27 мар 2017, 10:34

Re: ldap Присвоение клиентам групп по умолчанию.

Сообщение wvizard » 29 мар 2017, 04:55

На самом деле я уже частично разобрался для того чтобы синхронизация агентов заработала нужно добавить как минимум

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

$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
Однако есть особенность.
При каждом входе агента на которого распространяется правило например такое:

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

#$Self->{'AuthSyncModule::LDAP::UserSyncAttributeGroupsDefinition'} = {
       # ldap attribute
#        'mail' => {
            # ldap attribute value
#            'help@local.com' => {
                # otrs group
#                'admin' => {
                    # permission
#                    rw => 1,
#                    ro => 1,
#                },
#            },
#       }
#};
Циклично добавляются права на группу admin и удаляются. Т.е. первый раз заходишь он выставляет прова. Вышел затем зашел убираются права. И так по кругу.
У меня предположение или я где то накосячал. Либо это какойто быг. Может быть кто то сталкивался с такой проблемой.

Ответить