Zammad: Улучшения интеграции LDAP

Созданный на 24 апр. 2017  ·  16Комментарии  ·  Источник: zammad/zammad

LDAP Sync работает отлично! Но у меня есть улучшения.

  • У нас около 23 тысяч пользователей, и при каждой синхронизации появляется много пользователей с изменениями. Таким образом, ваш поток активности почти заполнен уведомлениями об изменениях пользователей. Итак, у вас есть переключатель, который отключает эти уведомления об изменении пользователей в потоках активности.

  • Вы можете синхронизировать изображения пользователей из Ldap (AD) из атрибута thumbnailPhoto

  • Возможность делать фильтр LDAP по дополнительным атрибутам. Пример: у нас есть атрибут «ProxyAdresses», который содержит много значений. Чтобы отобразить номер факса пользователя, мы должны передать некоторые данные в этот атрибут.

  • Вручную измените / укажите BASE DN: Если у вас около 500 компьютеров в AD, вам не следует смотреть на них и фильтровать их. Это тоже все ускорит.

Это пока что;)

enhancement

Самый полезный комментарий

добавление:
Сделать возможным фильтрацию на основе заданного OU

Все 16 Комментарий

добавление:
Сделать возможным фильтрацию на основе заданного OU

В настоящее время обходной путь для изменения BaseDN:

  • Перейти в консоль администратора
  • выполнить команду Setting.get('ldap_config')
  • скопируйте напечатанную строку, которая выглядит примерно так: {"host_url"=>"ldaps://127.0.0.1", "ssl_verify"=>false, "base_dn"=>"DC=domain,DC=tld", "bind_user"=>"user", "bind_pw"=>"pw", "user_uid"=>"samaccountname", "user_filter"=>"(&(objectClass=user)(samaccountname=*)(!(samaccountname=*$)))", "group_uid"=>"dn", "group_filter"=>"(objectClass=group)", "user_attributes"=>{"samaccountname"=>"login", "givenname"=>"firstname", "sn"=>"lastname", "mail"=>"email", "telephonenumber"=>"phone", "title"=>"note"}, "group_role_map"=>{}}
  • измените значение атрибута base_dn своему усмотрению
  • скопируйте новую строку и выполните следующую команду в консоли администратора Setting.set('ldap_config', *new_string*) - __ НЕ ЦИТИРУЙТЕ СТРОКУ__, просто скопируйте ее. На самом деле это синтаксис Ruby 🤓 Должен выглядеть так: Setting.set('ldap_config', {"host_url"=>"ldaps://127.0.0.1", "ssl_verify"=>false, "base_dn"=>"OU=...,DC=domain,DC=tld", "bind_user"=>"user", "bind_pw"=>"pw", "user_uid"=>"samaccountname", "user_filter"=>"(&(objectClass=user)(samaccountname=*)(!(samaccountname=*$)))", "group_uid"=>"dn", "group_filter"=>"(objectClass=group)", "user_attributes"=>{"samaccountname"=>"login", "givenname"=>"firstname", "sn"=>"lastname", "mail"=>"email", "telephonenumber"=>"phone", "title"=>"note"}, "group_role_map"=>{}})

Пожалуйста, дважды проверьте, что вы изменили только атрибут base_dn чтобы избежать нежелательного и неожиданного поведения.

Коротко о том, как мы будем действовать:

  • [X] Лента активности
    Мы обсудили это и пришли к выводу, что в случаях с большим количеством пользователей это может быть поток информации при первоначальном импорте, но мы не хотим пропускать (регистрировать) информацию. При будущем импорте в ActivityStream должно быть намного меньше шума. Возможной общей функцией может быть настраиваемый фильтр для ActivityStream, но это пока не планируется.

  • [X] Скрыть ms-атрибуты
    Мы обсудили это и пришли к выводу, что в случаях с большим количеством атрибутов это может быть информационный поток при первоначальном импорте, но мы не хотим скрывать информацию, которая может понадобиться некоторым людям. Так будут показаны ms-атрибуты. Поскольку поле сопоставления заполняется автоматически, эти ms-атрибуты можно будет обойти.

  • [x] Предварительный просмотр применяет назначение ролей
    Если выполняется предварительный просмотр / пробный прогон, роли уже назначаются, чего не следует делать, пока не начнется полный импорт.

  • [x] Ошибка нулевых данных
    В настоящее время отображается ошибка при первом входе в интерфейс администратора интеграции LDAP. Ничего подобного быть не должно.

  • [x] Изменяемый фильтр BaseDN / OU
    Мы изменим текущий выбор BaseDN с поля DropDown на большее количество предложений, которые можно использовать или изменять при необходимости. Это дает возможность расширить BaseDN и добавить фильтр OU по мере необходимости. Таким образом, нет необходимости в дополнительном always filter 🤓 для BaseDN.

  • [x] Изменяемый фильтр пользователей
    Пользовательский фильтр в настоящее время не может быть изменен через интерфейс. Это будет изменено, чтобы предоставить поле ввода с обнаруженным фильтром, который затем можно изменить по желанию.

  • [x] Повышение производительности

    • [x] При импорте пользователей LDAP наблюдается узкое место в производительности. Zammad пытается получить аватары из настроенных веб-сервисов (если они активированы). Это должно быть отключено для запуска LDAP. Тесты показали, что производительность, вероятно, увеличится более чем на 50%.
    • [x] Еще одним улучшением производительности будет ограничение атрибутов результатов ввода только теми, которые нам нужны.
  • [x] Поведение по умолчанию для пользователей без назначенных ролей
    Согласно предложению @chrklo, должна быть возможность решить, как поступать с пользователями, которым не назначены роли. Текущее поведение таково, что им назначаются роли входа. Параметр должен решить, должны ли пользователи без назначенной роли получать назначенные роли входа или они должны быть пропущены.

  • [] Аватары из атрибута LDAP thumbnailPhoto
    Мы обсудили это и выяснили, что существуют различные атрибуты, в которых могут храниться изображения, например, thumbnailPhoto , jpegPhoto и photo (по крайней мере). Здесь есть разные типы форматов хранения (двоичный, Base64, однозначное, многозначное ...). Это затрудняет поиск подходящего способа абстрагирования. Так что это по-прежнему хорошая функция, но мы снизили приоритет, поскольку в настоящее время прилагаются слишком большие усилия для получения преимуществ. Помощь здесь очень ценится!

@ Julian0o О другом вашем вопросе:

Возможность делать фильтр LDAP по дополнительным атрибутам. Пример: у нас есть атрибут «ProxyAdresses», который содержит много значений. Чтобы отобразить номер факса пользователя, мы должны передать некоторые данные в этот атрибут.

Я не уверен, правильно ли я понял. Не могли бы вы привести практический пример того, как это должно работать и как выглядят данные?

мое предложение для фильтра:

используйте роли, которые у вас уже есть в ldap Mapping, и включите / выключите кнопку always_filter

Вкл: синхронизируются только пользователи, соответствующие одной из ролей / группы ldap.
Выкл .: синхронизировать все

Привет @all! Я обновил свой пост выше, @chrklo, как вы думаете, необходимо ли исключение, если пользовательский фильтр и BaseDN можно изменить?

Сменный BaseDN - это хорошо.
Но в нашем древовидном дизайне это не решение из-за параллельных OU.

Что вы имеете в виду под фильтром OU?
Можно ли будет добавить в фильтр более одного OU?

BaseDB
| -OU1-пожалуйста-синхронизируйте-меня
| -OU2-пожалуйста-синхронизируйте-меня
| -OU3-пожалуйста-синхронизируйте-меня
| -OU4-пожалуйста-не-синхронизируй-меня
| -OU5-пожалуйста-не-синхронизируй-меня

Если возможно больше фильтров, это было бы для меня решением.
Но я думаю, что у многих компаний есть системные пользователи, внешние пользователи и т. Д., Которые не хотят синхронизироваться.

Поэтому мое предложение (необязательно) синхронизировать только пользователей, которые находятся в соответствующей роли <--> ldap_group, будет самым точным решением.

Небольшое обновление: отмеченные выше пункты будут доступны в последнем стабильном пакете примерно через 1 час. Также были внесены небольшие улучшения. Не стесняйтесь тестировать 🔨 Обратная связь будет отличной.

В настоящее время я работаю над открытыми точками и буду держать вас в курсе 🚀

Привет народ! Взгляните на обновленный список. Есть несколько других незначительных изменений, которые перечислены выше вместе с сделанными мной коммитами. Обратная связь была бы отличной!

Это состояние, которое, вероятно, перейдет в следующую версию выпуска, если не будет серьезных проблем.

По-прежнему существует проблема при остановке / перезапуске планировщика / рабочего Zammad во время выполнения задания импорта, как описано в # 1008. У нас есть план, как это исправить, и я работаю над его реализацией. Я тоже стараюсь включить это в следующий выпуск. 🚀

работает перфект!
Спасибо.

Как указано в №350, интеграция LDAP теперь готова для Zammad версии 1.6 и уже (примерно через 30 минут) в последней версии 1.5 🎉

Спасибо вам, замечательные люди, за исчерпывающий и ценный отзыв. Думаю, мы добавили немного сахара сверху из-за вас и ваших отзывов 🍰

Не стесняйтесь создавать новые задачи, если у вас есть проблемы с интеграцией. 🤞

@ Julian0o - было бы здорово, если бы вы могли создать новую

@thorsteneckel : Я только что попробовал LDAP, так как это было одно из моих желаний нулевого дня :-))

К сожалению, я столкнулся с проблемой: он отлично подключается, находит мои группы, я выполняю задания, но, наконец, после текста «Подсчет записей» всегда выдает сообщение об ошибке «Неверный синтаксис фильтра».

Я оставил поле "фильтр пользователей" пустым в "Эксперте" - я что-то здесь пропускаю?

Когда это будет решено, и я наконец смогу синхронизировать пользователей - у меня уже есть пользователи в системе без LDAP. Если Zammad теперь находит пользователей с совпадающими адресами электронной почты на сервере LDAP, будет ли он автоматически переключать этих пользователей с локальной аутентификации на LDAP?

Привет, @jacotec! То, что вы описываете, кажется мне проблемой 🤕 Не могли бы вы создать новую проблему и добавить следующую информацию:

  • Название и версия вашего поставщика программного обеспечения LDAP.
  • Пользовательский фильтр, который был бы правильным / который вы использовали бы при подключении к другому клиенту, кроме Zammad. Обычно это выглядит примерно так: (objectClass=user)

Похоже, Zammad не может автоматически определить пользовательский фильтр для вашего LDAP.

Что касается вашего другого вопроса: как указано в # 1169, пользователи могут либо аутентифицироваться в локальной БД, либо в LDAP, оба проверяются. 🚀

Привет @thorsteneckel!

Я заставил его работать, введя (objectClass = person) в качестве пользовательского фильтра. Беспокоит то, что он ничем не заполнен заранее, поэтому я подумал, что было бы нормально быть пустым, тем более, что он указан как экспертная конфигурация. ;-)

Однако, к сожалению, в интеграции все еще есть ошибки. У меня есть две группы, в которых пользователи должны стать агентами, я настроил не синхронизировать пользователей, которые не входят в эти группы. Краткое содержание:

  • Существующие пользователи объединяются путем сопоставления адресов электронной почты, а настройки агента сохраняются, и это хорошо!
  • Несуществующие пользователи, которые находятся хотя бы в одной из групп, импортируются, но им не назначена роль (это ошибка) - даже в качестве клиента.
  • Пользователи, не входящие ни в одну из моих групп, также импортируются, даже если я решил не синхронизировать их. Им не назначена никакая роль (даже в качестве клиента). Для меня это тоже ошибка.

У меня есть мои соответствующие пользователи, упакованные в местность, есть ли способ добавить это в базу? На данный момент Заммад захватывает также пользователей, которые находятся за пределами местности, таких как мои поисковые и административные пользователи.

Сегодня вечером я снова протестирую его (сделайте снимок, переведите Zammad в режим обслуживания и поиграйте). Будет ли Zammad продолжать получать почту в режиме обслуживания (потому что я восстановлю снимок после тестирования и не потеряю билеты, которые приходят по почте в это время)?
Если вы скажете мне, какие отладки / логи вам нужны, я позабочусь об этом заранее. Затем я запишу новый выпуск.

Я использую OpenLDAP с Fusion Directory https://www.fusiondirectory.org в Debian 8.

Привет @thorsteneckel!

У меня проблемы с файлами № 1179 и № 1180, которые сейчас меня привлекают внимание. Я постарался описать их как можно лучше, включая несколько скриншотов.

Наслаждаться ;-))

Привет @jacotec - ты

Привет @thorsteneckel!

Я рада помочь. Дайте мне знать о ваших отладочных скриптах ... поскольку это виртуальная машина, мне легко запускать их без вреда ;-)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги