ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
* [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