Хочется такого:
иметь ветку с учётными записями пользователей
и отдельные ветки для сервисов (возможно с подветками для хостов).
Всех людей хранить в одном месте, а для сервисов понасоздавать ссылок
на людей, которых им нужно видеть.
Столкнулся с проблемой: при создании ссылок с помощью objectClass: alias,
для них работает поиск по фильтру, но не работает bind.
Если же "ссылки" делать через dynlist overlay,
тогда можно в объекте-ссылке дополнительно указать поле userPassword,
и будет работать bind, но пропадает возможность делать поиск по фильтру.
К примеру имеем:
dc=com
|---dc=users
| |---uid=user1
| | cn: user1; uidNumber: 100; userPassword: xxx
| \---uid=user2
| cn: user2; uidNumber: 200; userPassword: yyy
\---dc=links
|---uid=u1_alias
| objectClass: alias; aliasedObjectName: uid=user1,dc=users,dc=com; userPassword: xxx
\---uid=u2_alias
objectClass: dynamicListGroup; expandThisURL: ldap:///uid=user2,dc=users,dc=com??base?(objectclass=*); userPassword: yyy
Проверка на bind:
$ ldapsearch -b 'uid=u1_alias,dc=links,dc=com' -xD 'uid=u1_alias,dc=links,dc=com' -w xxx
ldap_bind: Invalid credentials (49)
$ ldapsearch -b 'uid=u2_alias,dc=links,dc=com' -xD 'uid=u2_alias,dc=links,dc=com' -w xxx
подключается и выводит данные объекта (dynlist работает)
Проверка на поиск с фильтром:
$ ldapsearch -b 'dc=links,dc=com' -xD $root_dn -W 'uidNumber=*'
находит только один dn: uid=user1,dc=users,dc=com
Тот же поиск, но без фильтра, находит обе записи
Знает ли кто-нибудь способ сделать так, чтоб и "ссылки" были, и фильтры работали ?
Либо это где-то у меня "лыжи не едут" ?
Да, с sasl ldapsearch отрабатывает нормально, только вот не совсем понятно каким местом sasl будет относиться к разным сервисам.
К примеру есть jabber (openfire), он берёт пользователей из ветки, в которой одни ссылки на нужных пользователей. Когда кто-то проходит аутентификацию (подключается к jabber-у), jabber делает bind под DN-ом, который является alias-ом (что как раз не срабатывает). Не совсем понимаю как и куда в этом случае можно всунуть sasl.
Вообще из сервисов планируется иметь: ssh (через pam_ldap), почта (exim/postfix + dovecot), jabber (openfire), svn (через apache), возможно в дальнейшем что-то ещё.
Можно чуть подробнее описать схему работы этого всего ? Потому как у меня пока одна мысль: отказаться от ссылок, переделать структуру данных, т.е. сделать не так, как хочется, а так, чтоб хоть как-то всё заработало.
Да, только похоже не все поддерживают sasl (без понятия как прикрутить это к openfire, mod_dav_svn и др.), да и делать копию user-ов в sasl тоже не весело.
Попробовал overlay rwm - пока вроде все проблемы решаются, на нём и остановлюсь.