Что-то я запутался читая всё это...
Одновременно приводятся настройки как для LDAP так и для HTTPBasicAuth авторизации и не понятно, какой тип авторизации используется в конкретный проблемный момент.
Для начала нужно правильно поставить задачу.
1. Какова причина отказа от LDAP авторизации и переход на HTTPBasicAuth?
pgandalipov писал(а):необходимо закрыть доступ к агентскому интрефейсу всем, кроме одной группы доступа в AD.
Так или иначе пользователю придется вводить свои учетные данные, если ты конечно не хочешь выдавать прямые разрешения привилегированным агентам по IP адресу.
Строка
$Self->{'AuthModule::LDAP::GroupDN'} = 'cn=grAdmins,ou="AccessGroups",dc=domain';
не имеет никакой силы при использовании HTTPBasicAuth, хоть комментируй её, хоть нет.
2. Непонятны сделанные выводы:
pgandalipov писал(а):Хотя он синхронизирует роли только для одной группы, и не понятно что будет со всеми остальными.
Это где я такое делаю?
У меня имеется одна группа безопасности AD, в которую включены все агенты, имеющие доступ к интерфейсу агента OTRS. Эта группа указана в параметре:
$Self->{'AuthModule::LDAP::GroupDN'}
И ещё пять групп безопасности для распределения ролей согласно своим обязанностям:
Код: Выделить всё
$Self->{'AuthSyncModule::LDAP::UserSyncRolesDefinition'} = {
# ldap groups
'CN=OTRS_OSIV,OU=ldap,OU=System users,DC=ame,DC=ru' => {
#'OASUTP' => 0,
'OSIV' => 1,
#'PROGRAMMERS' => 0,
},
'CN=OTRS_PROGRAMMERS,OU=ldap,OU=System users,DC=ame,DC=ru' => {
#'OASUTP' => 0,
#'OSIV' => 0,
'PROGRAMMERS' => 1,
},
'CN=OTRS_OASUTP,OU=ldap,OU=System users,DC=ame,DC=ru' => {
'OASUTP' => 1,
#'OSIV' => 0,
#'PROGRAMMERS' => 0,
},
'CN=OTRS_CTD,OU=ldap,OU=System users,DC=ame,DC=ru' => {
'CTD' => 1,
#'OASUTP' => 0,
#'OSIV' => 0,
#'PROGRAMMERS' => 0,
},
'CN=OTRS_BUCHET,OU=ldap,OU=System users,DC=ame,DC=ru' => {
'BUCHET' => 1,
#'OASUTP' => 0,
#'OSIV' => 0,
#'PROGRAMMERS' => 0,
},
};
И созданные в OTRS пять ролей 'BUCHET', 'CTD', 'OASUTP', 'OSIV', 'PROGRAMMERS'.
Для каждой роли настроены права в каждой группе.
Итого имеем.
* Только пользователи в специального группе имеет доступ к интерфейсу агента.
* Если агенту не назначена роль, то он имеет полный доступ к в группах указанных в параметре
$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'}
Там имеется либо самый минимум, либо убрать оттуда всё.
* При добавлении агента в группы безопасности ролей права каждой назначенной роли складываются.
Тут правда я не проверял как поведет себя OTRS в ситуации если по одному правилу роль выдается
'OASUTP' => 1,
а по одному правилу правилу забирается
'OASUTP' => 0,
И пользователю назначены обе группы.
Ты конечно можешь использовать AuthSyncModule::LDAP::UserSyncGroupsDefinition для синхронизации прав в группа, причем по той же схеме. что и для ролей, т.е. не для одной группы, а для нескольких:
Код: Выделить всё
$Self->{'AuthSyncModule::LDAP::UserSyncGroupsDefinition'} = {
# ldap group
'cn=agent,o=otrs' => { # Это первая группа безопасности !!!
# otrs group
'admin' => {
# permission
rw => 1,
ro => 1,
},
'faq' => {
rw => 0,
ro => 1,
},
},
'cn=agent2,o=otrs' => { # Это ВТОРАЯ группа безопасности !!!
'users' => {
rw => 1,
ro => 1,
},
}
};
Обрати внимание на строчку в коде Это ВТОРАЯ группа безопасности !!!
Но меня такой способ синхронизации не устроил.
Каждый раз заходить на сервер, чтобы конфиг подправить, когда нужно расширить или урезать права определенной группы агентов...
Я посчитал, что рациональней иметь под руками роли, правами которых я могу управлять через интерфейс OTRS.
Думаю, этой информации должно хватить, чтобы решить твою проблему. Если что обращайся.
Я не флудер, у меня просто не получаются маленькие посты.