В настоящее время мы разрабатываем администрацию нового участника для нашей учебной ассоциации в LDAP, используя OpenLDAP 2.3.31, распространяемый вместе с Debian. Одно из требований заключается в том, что нам необходимо записывать, какие члены входят в комитеты. С этой целью мы создали подкласс организационной единицы, называемый x-FMFCommittee, и подкласс организационной роли, называемый x-FMFCommitteeRole. Теперь все роли (например, президент, казначей и т. д.), связанные с комитетом, расположены в поддереве записи комитета. DN членов, которые берут на себя эту роль, затем устанавливаются как атрибут roleOccupant в x-FMFCommitteeRole. Это прекрасно работает.
Однако мы также предоставляем нашим пользователям доступ к оболочке Linux и рабочим столам Windows (используя Samba), и для этого мы также хотели бы администрировать членство в группах POSIX. С этой целью каждый комитет, для которого мы хотим это сделать, также имеет объектный класс posixGroup (согласно RFC2307). Чтобы получить членов группы и группы, связанные с пользователем, нам нужно установить атрибут memberUid в записи комитета всякий раз, когда участник занимает роль в комитете.
Мы пытались сделать это с помощью оверлея dynlist, но это не помогло при обратном групповом поиске. Единственный вариант, который мы видим сейчас, — это делать все это вручную, но мы действительно хотели бы автоматизировать это, чтобы упростить обслуживание в будущем, поскольку администраторы в нашей ассоциации часто меняются.
Кто-нибудь сталкивался с подобным сценарием раньше или кто-нибудь знает решение этой проблемы?