При кликанье на меню Клиент, и вставки в окно поиска * (типа искать всех) ничего не ищется (Source стоит LDAP), в логе вот такая ошибка
[Kernel::System::CustomerUser::LDAP::CustomerSearch][336] Sizelimit exceeded
Существует ли какое огрничение на количество объектов в AD? Я поместил в выделеное OU 5 пользователей, и сделал на него фокус в скрипте, ошибка пропала
Поиск Клиента (LDAP)
Модератор: ykolesnikov
-
- OTRS Новобранец
- Сообщения: 50
- Зарегистрирован: 10 окт 2010, 08:13
- Откуда: Москва
-
- OTRS Гуру
- Сообщения: 5204
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 94 раза
- Поблагодарили: 84 раза
Re: Поиск Клиента (LDAP)
Возможно на это влияет параметр MaxPageSize установленный в AD. По умолчанию он =1000. Попробуйте его изменить.
С уважением,
Алексей Юсов
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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
Re: Поиск Клиента (LDAP)
Посмотри, чему заданы в файлах конфигурации следующие параметры:
Если поиск ведется по всему домену, то в запрос попадают не только юзеры но и компьютеры.
Ограничение вида
не поможет, ибо любой компьютер отчасти является объектом класса user
Фильтр нужно задавать как '(objectCategory=user);'
Код: Выделить всё
$Self->{CustomerUser} = {
[...]
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
[...]
}
Ограничение вида
Код: Выделить всё
AlwaysFilter = '(objectclass=user)';
Фильтр нужно задавать как '(objectCategory=user);'
Я не флудер, у меня просто не получаются маленькие посты.
-
- OTRS Новобранец
- Сообщения: 50
- Зарегистрирован: 10 окт 2010, 08:13
- Откуда: Москва
Re: Поиск Клиента (LDAP)
ULiX спс
Я пошел дальше и развил тему, вот фильтр, который пропускает задизабленных пользователей, или не показывает их в результатах:
# ИСКАТЬ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ ЗА ИСКЛЮЧЕНИЕМ ОТКЛЮЧЕННЫХ
Прошу помнить, что я Window Admin и на до делать привязку моих постов именно к Windows.
objectCategory=User - как правильно подсказали, ограничивает поиск только объектами User (Хотя надо подумать и над объектами Contact, так как если у компании туча магазинов в каждом городе, не факт что они все в одном лесе).
Но в этом случае надо экспериментировать, так как Contact не имеет таких ключевых атрибутов типа как userPrincipalName
!userAccountControl=66050 - параметр который указывает что пользователь отключен, знак ! - знак исключения
Я пошел дальше и развил тему, вот фильтр, который пропускает задизабленных пользователей, или не показывает их в результатах:
# ИСКАТЬ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ ЗА ИСКЛЮЧЕНИЕМ ОТКЛЮЧЕННЫХ
Код: Выделить всё
AlwaysFilter => '(objectCategory=User)(!userAccountControl=66050)',
objectCategory=User - как правильно подсказали, ограничивает поиск только объектами User (Хотя надо подумать и над объектами Contact, так как если у компании туча магазинов в каждом городе, не факт что они все в одном лесе).
Но в этом случае надо экспериментировать, так как Contact не имеет таких ключевых атрибутов типа как userPrincipalName
!userAccountControl=66050 - параметр который указывает что пользователь отключен, знак ! - знак исключения
Re: Поиск Клиента (LDAP)
Неверное суждение.Sacrificer писал(а):!userAccountControl=66050 - параметр который указывает что пользователь отключен, знак ! - знак исключения
За блокировку пользователя отвечает лишь второй бит данного атрибута. Ты же предлагаешь проверять полное совпадение.
Посмотрим на предлагаемое тобой число в бинарным взглядом
1 0000 0010 0000 0010
Как видим второй бит действительно установлен.
Но установлена ещё пара битов. А за что отвечают они?
0x200
This is a default account type that represents a typical user.
ADSI flag: ADS_UF_NORMAL_ACCOUNT
0x10000
The password for this account will never expire.
ADSI flag: ADS_UF_DONT_EXPIRE_PASSWD
Ну, если с флагом ADS_UF_NORMAL_ACCOUNT я могу согласиться, что он должен у каждого юзера стоять по умолчанию, то с незаканчивающимся паролем сомневаюсь. В моем домене такое не приемлемо, и каждый пользователь раз в месяц пароль меняет.
Если уж решать данную задачу, то решать по умному.
Вот нужный тебе фильтр для отбора незалоченных:
(!userAccountControl:1.2.840.113556.1.4.803:=2)
Это так называемые спец директивы AD.
операция :1.2.840.113556.1.4.803: - эквивалентна логической операции AND с числом за знаком "=".
Информация не новая, но полезная.
Я не флудер, у меня просто не получаются маленькие посты.