* [Sysadmins] ejabberd - группы из LDAP на основе OU
@ 2009-10-02 19:14 Max Ivanov
2009-10-03 7:47 ` Dmitriy Kruglikov
0 siblings, 1 reply; 13+ messages in thread
From: Max Ivanov @ 2009-10-02 19:14 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
Написал ( по большей части накопипастил mod_shared_roster уж) модуль,
который формирует shared roster на основу OU из LDAP. Логика проста:
по фильтру нашли OU, по фильтру нашли пользователей в каждой OU.
Разные случаи, когда пользователь попытается удалить кого-нибудь из
shared roster обрабатываются корректно.
В отличие от mod_shared_roster_ldap сильно меньше дергает ldap
(отображаемые имена группы и пользователей получаются за один запрос,
ане так, что сначала взяли внутреннее имя пользователя, потом
запросили отображаемое имя), с другой стороны модуль пока не умеет
фильтровать записи в себе, а не средствами LDAP. Может когда-нибудь и
напишу.
Называется mod_shared_roster_ldap_ou, лежит в
http://git.altlinux.org/people/redbaron/public/?p=mod_shared_roster_ldap_ou.git;a=summary
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-02 19:14 [Sysadmins] ejabberd - группы из LDAP на основе OU Max Ivanov
@ 2009-10-03 7:47 ` Dmitriy Kruglikov
2009-10-03 9:29 ` Max Ivanov
0 siblings, 1 reply; 13+ messages in thread
From: Dmitriy Kruglikov @ 2009-10-03 7:47 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
2 октября 2009 г. 22:14 пользователь Max Ivanov написал:
> Написал ( по большей части накопипастил mod_shared_roster уж) модуль,
> который формирует shared roster на основу OU из LDAP.
А зачем ?
Оно ж и так работает ...
Только настроить нужно ...
У меня и по OU сортировало ...
Сейчас по городу (l) ...
Все "искаропки" ...
Только конфиг мой ...
Дать поностить?
--
Как правильно задавать вопросы:
http://maddog.sitengine.ru/smart-question-ru.html
Помогает:
http://search.altlinux.org
Best regards,
Dmitriy Kruglikov
Dmitriy.Kruglikov_at_gmail_dot_com
XMPP: Dmitriy.Kruglikov_at_gmail_dot_com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-03 7:47 ` Dmitriy Kruglikov
@ 2009-10-03 9:29 ` Max Ivanov
2009-10-03 12:13 ` Dmitriy Kruglikov
0 siblings, 1 reply; 13+ messages in thread
From: Max Ivanov @ 2009-10-03 9:29 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
> А зачем ?
Я не осилил назначение всех фильров в оригинальном
mod_shared_roster_ldap + последдние изменения в mod_shared_roster там
не отражены + сделал экономию на ldap запросах. А началось вообще с
того, что оно на 2.1.0 не заводится, но патчится элементарно, да там
меня уже не остановить было :)
> Оно ж и так работает ...
> Только настроить нужно ...
> У меня и по OU сортировало ...
> Сейчас по городу (l) ...
> Все "искаропки" ...
> Только конфиг мой ...
> Дать поностить?
Давай конечно. Мне непонятно как дефолтный может работать с OU, ведь
оно ищет сначала группы, потом просто берет как список пользователей
какой-нибудь аттрибут найденной группы. С OU такое прокатить впринципе
не может, т.к. надо искать с другим base path равноым dn от найденной
OU.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-03 9:29 ` Max Ivanov
@ 2009-10-03 12:13 ` Dmitriy Kruglikov
2009-10-03 14:16 ` Mikhail A. Pokidko
2009-10-06 11:31 ` Max Ivanov
0 siblings, 2 replies; 13+ messages in thread
From: Dmitriy Kruglikov @ 2009-10-03 12:13 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
3 октября 2009 г. 12:29 пользователь Max Ivanov написал:
> Я не осилил назначение всех фильров в оригинальном
> mod_shared_roster_ldap
...
> да там
> меня уже не остановить было :)
Вот, помню, и генерал Брусилов так же оправдывался... ;)
>
> Давай конечно.
Вот тебе, для начала vcard
+++
{mod_vcard_ldap, [
{ldap_vcard_map, [
{"NICKNAME", "%s", ["cn"]},
{"GIVEN", "%s", ["givenName"]},
{"MIDDLE", "%s", ["initials"]},
{"FAMILY", "%s", ["sn"]},
{"FN", "%s", ["displayName"]},
{"EMAIL", "%s", ["mail"]},
{"ORGNAME", "%s", ["o"]},
{"ORGUNIT", "%s", ["ou"]},
{"LOCALITY", "%s", ["l"]},
{"STREET", "%s", ["street"]},
{"REGION", "%s", ["st"]},
{"PCODE", "%s", ["postalCode"]},
{"TITLE", "%s", ["title"]},
{"URL", "%s", ["wWWHomePage"]},
{"DESC", "%s", ["description"]},
{"PHOTO", "%s", ["jpegPhoto"]},
{"ROLE", "%s", ["employeeType"]},
{"TEL", "%s", ["mobile"]}
]},
{ldap_search_fields, [
{"Пользователь", "%u"},
{"Псевдоним", "displayName"},
{"Имя", "givenName"},
{"Фамилия", "sn"},
{"E-Mail", "mail"},
{"Город", "l"}
]},
{ldap_search_reported, [
{"Псевдоним", "NICKNAME"},
{"Телефоны", "TEL"},
{"E-Mail", "EMAIL"}
]}
]},
+++
А вот тебе ростер...
+++
{mod_shared_roster_ldap, [
{ldap_base, "ou=People,dc=breg,dc=com,dc=ua"},
{ldap_groupattr, "l"},
{ldap_groupdesc, "City"},
{ldap_filter, "(&(destinationIndicator=act)(jabberPublishedItem=1))"},
{ldap_memberattr, "uid"},
{ldap_userdesc, "displayName"}
]},
+++
Фильтры у меня своеобразные ...
jabberPublishedItem нет в типовых схемах ...
Это остатки от танцев вокруг jabberd2 ...
destinationIndicator использую, как умею ...
В моих настройках destinationIndicator=act используется еще
и в фильтрах адресной книги RoundCube ...
В результате, у меня ростер группируется по городам, на основании
значения атрибута "l". В ростер попадают только те пользователи,
которые хоть раз залогинились, и при условии, что у них
destinationIndicator=act.
> Мне непонятно как дефолтный может работать с OU, ведь
> оно ищет сначала группы, потом просто берет как список пользователей
> какой-нибудь аттрибут найденной группы.
Нет ... Он берет значение ou: Группа ...
...
> т.к. надо искать с другим base path равноым dn от найденной
> OU.
Не ... Атрибут у каждого пользователя прописан ...
Ни чего искать не нужно ...
На основании значения поместить в нужную ветку ростера ...
--
Как правильно задавать вопросы:
http://maddog.sitengine.ru/smart-question-ru.html
Помогает:
http://search.altlinux.org
Best regards,
Dmitriy Kruglikov
Dmitriy.Kruglikov_at_gmail_dot_com
XMPP: Dmitriy.Kruglikov_at_gmail_dot_com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-03 12:13 ` Dmitriy Kruglikov
@ 2009-10-03 14:16 ` Mikhail A. Pokidko
2009-10-03 16:44 ` Dmitriy Kruglikov
2009-10-06 11:31 ` Max Ivanov
1 sibling, 1 reply; 13+ messages in thread
From: Mikhail A. Pokidko @ 2009-10-03 14:16 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
2009/10/3 Dmitriy Kruglikov <dmitriy.kruglikov@gmail.com>:
...
> А вот тебе ростер...
> +++
> {mod_shared_roster_ldap, [
> {ldap_base, "ou=People,dc=breg,dc=com,dc=ua"},
> {ldap_groupattr, "l"},
> {ldap_groupdesc, "City"},
> {ldap_filter, "(&(destinationIndicator=act)(jabberPublishedItem=1))"},
> {ldap_memberattr, "uid"},
> {ldap_userdesc, "displayName"}
> ]},
> +++
>
> Фильтры у меня своеобразные ...
Дим, а сколько у тебя пользователей?
Мне пришлось отказаться от m_s_r_l, потому что при ~4х сотнях (с
ростером вида все есть у всех, ручное заполнение) коннект занимает
минуты 3, что анрил.
--
xmpp: pma AT altlinux DOT org
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-03 14:16 ` Mikhail A. Pokidko
@ 2009-10-03 16:44 ` Dmitriy Kruglikov
2009-10-03 16:50 ` Mikhail A. Pokidko
0 siblings, 1 reply; 13+ messages in thread
From: Dmitriy Kruglikov @ 2009-10-03 16:44 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
3 октября 2009 г. 17:16 пользователь Mikhail A. Pokidko написал:
> Дим, а сколько у тебя пользователей?
Сейчас 17...
> Мне пришлось отказаться от m_s_r_l, потому что при ~4х сотнях (с
> ростером вида все есть у всех, ручное заполнение) коннект занимает
> минуты 3, что анрил.
Не понял про ручное заполнение и m_s_r_l (m_s_r_l я интерпретировал)...
У меня все автоматически ... Нового завел, в LDAPe отметил, как активного...
Переконнектился и появился ....
Даже не удаляется, потому как при следующем коннекте всплывет ...
На 4х сотнях проверить не могу ...
P.S.
Я не утверждаю, что оптимизация модулю не нужна ...
Я ж в него не смотрел :)
Я просто говорю, что свои функции он выполняет,
и писать на его основе другой движек,
реализующий его же функции - мутновато как-то ...
--
Как правильно задавать вопросы:
http://maddog.sitengine.ru/smart-question-ru.html
Помогает:
http://search.altlinux.org
Best regards,
Dmitriy Kruglikov
Dmitriy.Kruglikov_at_gmail_dot_com
XMPP: Dmitriy.Kruglikov_at_gmail_dot_com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-03 16:44 ` Dmitriy Kruglikov
@ 2009-10-03 16:50 ` Mikhail A. Pokidko
2009-10-03 17:05 ` Dmitriy Kruglikov
0 siblings, 1 reply; 13+ messages in thread
From: Mikhail A. Pokidko @ 2009-10-03 16:50 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
2009/10/3 Dmitriy Kruglikov <dmitriy.kruglikov@gmail.com>:
> 3 октября 2009 г. 17:16 пользователь Mikhail A. Pokidko написал:
>
>> Дим, а сколько у тебя пользователей?
> Сейчас 17...
Жаль)
>> Мне пришлось отказаться от m_s_r_l, потому что при ~4х сотнях (с
>> ростером вида все есть у всех, ручное заполнение) коннект занимает
>> минуты 3, что анрил.
> Не понял про ручное заполнение и m_s_r_l (m_s_r_l я интерпретировал)...
Поддержка офиса заполняет ростеры руками, ибо с модулем слишком долго.
> P.S.
> Я не утверждаю, что оптимизация модулю не нужна ...
А там иначе врядли получится - надо же высасывать ростер при каждом коннекте.
Пока я придумал дампить по крону пользователей из AD в Postgres (всё
равно рядом с ежом стоит).
Вот только раньше НГ врядли доберусь.
--
xmpp: pma AT altlinux DOT org
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-03 16:50 ` Mikhail A. Pokidko
@ 2009-10-03 17:05 ` Dmitriy Kruglikov
2009-10-03 17:45 ` Mikhail A. Pokidko
0 siblings, 1 reply; 13+ messages in thread
From: Dmitriy Kruglikov @ 2009-10-03 17:05 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
3 октября 2009 г. 19:50 пользователь Mikhail A. Pokidko написал:
>> Сейчас 17...
> Жаль)
Хм ...
Хотя ... Пропроционально числу пользователей увеличить и ЗП :)
>
> Пока я придумал дампить по крону пользователей из AD в Postgres (всё
> равно рядом с ежом стоит).
А при чем тут АД ?
У тебя ростер из АД заполняется ?
У меня наш, openldap ...
Если 400 рыл из АД, то считай, что за 3 минуты, это ракЭта ;)
--
Как правильно задавать вопросы:
http://maddog.sitengine.ru/smart-question-ru.html
Помогает:
http://search.altlinux.org
Best regards,
Dmitriy Kruglikov
Dmitriy.Kruglikov_at_gmail_dot_com
XMPP: Dmitriy.Kruglikov_at_gmail_dot_com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-03 17:05 ` Dmitriy Kruglikov
@ 2009-10-03 17:45 ` Mikhail A. Pokidko
0 siblings, 0 replies; 13+ messages in thread
From: Mikhail A. Pokidko @ 2009-10-03 17:45 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
2009/10/3 Dmitriy Kruglikov <dmitriy.kruglikov@gmail.com>:
> 3 октября 2009 г. 19:50 пользователь Mikhail A. Pokidko написал:
>>> Сейчас 17...
>> Жаль)
> Хм ...
> Хотя ... Пропроционально числу пользователей увеличить и ЗП :)
>>
>
>> Пока я придумал дампить по крону пользователей из AD в Postgres (всё
>> равно рядом с ежом стоит).
> А при чем тут АД ?
> У тебя ростер из АД заполняется ?
> У меня наш, openldap ...
Да, но разницы-то нет, из какого ldap-сервера наполняться.
> Если 400 рыл из АД, то считай, что за 3 минуты, это ракЭта ;)
Это и плохо
--
xmpp: pma AT altlinux DOT org
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-03 12:13 ` Dmitriy Kruglikov
2009-10-03 14:16 ` Mikhail A. Pokidko
@ 2009-10-06 11:31 ` Max Ivanov
2009-10-06 11:51 ` Dmitriy Kruglikov
1 sibling, 1 reply; 13+ messages in thread
From: Max Ivanov @ 2009-10-06 11:31 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
> +++
> А вот тебе ростер...
> +++
> {mod_shared_roster_ldap, [
> {ldap_base, "ou=People,dc=breg,dc=com,dc=ua"},
> {ldap_groupattr, "l"},
> {ldap_groupdesc, "City"},
> {ldap_filter, "(&(destinationIndicator=act)(jabberPublishedItem=1))"},
> {ldap_memberattr, "uid"},
> {ldap_userdesc, "displayName"}
> ]},
> +++
что здесь "City"? Аттрибут у пользователя? насколько я помню это
должен был быть аттрибут группы хранящий отображаемое имя. но такого
нет, так что запросы в пустую идут.
>> Мне непонятно как дефолтный может работать с OU, ведь
>> оно ищет сначала группы, потом просто берет как список пользователей
>> какой-нибудь аттрибут найденной группы.
> Нет ... Он берет значение ou: Группа ...
В коде изкоробочного модуля нет вообще ничего про OU.
>> т.к. надо искать с другим base path равноым dn от найденной
>> OU.
> Не ... Атрибут у каждого пользователя прописан ...
> Ни чего искать не нужно ...
> На основании значения поместить в нужную ветку ростера ...
Это у тебя прописан городе у каждого, у меня пользователя разбросаны
по OU, а у самих пользователей никаких аттрибутов по которым бы их
можно было причислить в группы нет.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-06 11:31 ` Max Ivanov
@ 2009-10-06 11:51 ` Dmitriy Kruglikov
2009-10-06 17:22 ` Max Ivanov
0 siblings, 1 reply; 13+ messages in thread
From: Dmitriy Kruglikov @ 2009-10-06 11:51 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
6 октября 2009 г. 14:31 пользователь Max Ivanov написал:
> что здесь "City"? Аттрибут у пользователя? насколько я помню это
> должен был быть аттрибут группы хранящий отображаемое имя. но такого
> нет, так что запросы в пустую идут.
Да.
У меня в базе LDAP у пользователей прописан такой атрибут, и я группирую
ростер по этому атрибуту ...
Мне нужно именно так ...
Напишите свой атрибут группировки...
>
> Это у тебя прописан городе у каждого, у меня пользователя разбросаны
> по OU, а у самих пользователей никаких аттрибутов по которым бы их
> можно было причислить в группы нет.
Я бы добавил каждому пользователю атрибут, по которому группировать ростер ...
Тогда пользователи будут отбираться по всей базе, на основании фильтров,
а группироваться по данному атрибуту.
Думаю, это будет быстрее, чем лопатить каждый OU...
--
Как правильно задавать вопросы:
http://maddog.sitengine.ru/smart-question-ru.html
Помогает:
http://search.altlinux.org
Best regards,
Dmitriy Kruglikov
Dmitriy.Kruglikov_at_gmail_dot_com
XMPP: Dmitriy.Kruglikov_at_gmail_dot_com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-06 11:51 ` Dmitriy Kruglikov
@ 2009-10-06 17:22 ` Max Ivanov
2009-10-07 5:49 ` Dmitriy Kruglikov
0 siblings, 1 reply; 13+ messages in thread
From: Max Ivanov @ 2009-10-06 17:22 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
> Думаю, это будет быстрее, чем лопатить каждый OU...
Пользователи уже в OU, зачем что-то переделывать? тем более gosa
отлично работает с этими OU. А по скорости... 1) если не 9000
пользователей, то не критично, 2) изкоробочный модуль бомбит лдап
запросами мама негорюй.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Sysadmins] ejabberd - группы из LDAP на основе OU
2009-10-06 17:22 ` Max Ivanov
@ 2009-10-07 5:49 ` Dmitriy Kruglikov
0 siblings, 0 replies; 13+ messages in thread
From: Dmitriy Kruglikov @ 2009-10-07 5:49 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
6 октября 2009 г. 20:22 пользователь Max Ivanov написал:
> 2) изкоробочный модуль бомбит лдап запросами мама негорюй.
Тогда, вероятно, будет правильным обсудить ваш вариант с Evgeniy
Khramtsov (если я не ошибаюсь и автор модуля действительно он).
Если нужно, дам его контакты в личке ...
--
Как правильно задавать вопросы:
http://maddog.sitengine.ru/smart-question-ru.html
Помогает:
http://search.altlinux.org
Best regards,
Dmitriy Kruglikov
Dmitriy.Kruglikov_at_gmail_dot_com
XMPP: Dmitriy.Kruglikov_at_gmail_dot_com
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2009-10-07 5:49 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-02 19:14 [Sysadmins] ejabberd - группы из LDAP на основе OU Max Ivanov
2009-10-03 7:47 ` Dmitriy Kruglikov
2009-10-03 9:29 ` Max Ivanov
2009-10-03 12:13 ` Dmitriy Kruglikov
2009-10-03 14:16 ` Mikhail A. Pokidko
2009-10-03 16:44 ` Dmitriy Kruglikov
2009-10-03 16:50 ` Mikhail A. Pokidko
2009-10-03 17:05 ` Dmitriy Kruglikov
2009-10-03 17:45 ` Mikhail A. Pokidko
2009-10-06 11:31 ` Max Ivanov
2009-10-06 11:51 ` Dmitriy Kruglikov
2009-10-06 17:22 ` Max Ivanov
2009-10-07 5:49 ` Dmitriy Kruglikov
ALT Linux sysadmins discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
public-inbox-index sysadmins
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sysadmins
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git