Рекомендации по управлению членством в группах POSIX с дополнительными атрибутами в LDAP

В настоящее время мы разрабатываем администрацию нового участника для нашей учебной ассоциации в LDAP, используя OpenLDAP 2.3.31, распространяемый вместе с Debian. Одно из требований заключается в том, что нам необходимо записывать, какие члены входят в комитеты. С этой целью мы создали подкласс организационной единицы, называемый x-FMFCommittee, и подкласс организационной роли, называемый x-FMFCommitteeRole. Теперь все роли (например, президент, казначей и т. д.), связанные с комитетом, расположены в поддереве записи комитета. DN членов, которые берут на себя эту роль, затем устанавливаются как атрибут roleOccupant в x-FMFCommitteeRole. Это прекрасно работает.

Однако мы также предоставляем нашим пользователям доступ к оболочке Linux и рабочим столам Windows (используя Samba), и для этого мы также хотели бы администрировать членство в группах POSIX. С этой целью каждый комитет, для которого мы хотим это сделать, также имеет объектный класс posixGroup (согласно RFC2307). Чтобы получить членов группы и группы, связанные с пользователем, нам нужно установить атрибут memberUid в записи комитета всякий раз, когда участник занимает роль в комитете.

Мы пытались сделать это с помощью оверлея dynlist, но это не помогло при обратном групповом поиске. Единственный вариант, который мы видим сейчас, — это делать все это вручную, но мы действительно хотели бы автоматизировать это, чтобы упростить обслуживание в будущем, поскольку администраторы в нашей ассоциации часто меняются.

Кто-нибудь сталкивался с подобным сценарием раньше или кто-нибудь знает решение этой проблемы?


person Eric Spreen    schedule 21.01.2014    source источник


Ответы (1)


Я бы посоветовал вам просто избавиться от первой реализации и просто использовать posixGroup. Денормализация базы данных — всегда плохая идея, какую бы форму она ни принимала.

И вам не нужно расширять схемы для этой проблемы. Если вы хотите выделить эти комитеты, просто поместите их в отдельное поддерево.

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

person user207421    schedule 31.01.2014
comment
Мы действительно решили сделать комитеты также posixGroups и добавлять членов вручную. Однако нам нужно расширить схему, потому что нам нужно отслеживать дополнительную информацию. Я посмотрю на оверлей memberOf. Спасибо за это! - person Eric Spreen; 05.02.2014