Лучше всего использовать оверлей memberOf
.
Вы используете класс объектов groupOfNames
(который уже существует), чтобы указать членов, которые будут принадлежать записи проекта, используя атрибут member
.Вы можете добавить столько атрибутов member
, сколько захотите, где каждый атрибут участника является (полным) DN.
Лично я бы создал свой собственный objectClass (например, с именем project), который расширил класс groupOfNames, чтобы я мог добавить к нему дополнительные атрибуты, связанные с проектом.Но зависит от того, насколько сложным вы хотите стать.
Затем вы переопределите свою структуру следующим образом ...
- O = CompanyName
- OU = People
- uid = UserID001
- uid = UserID002
- uid = UserID003
- OU = Проекты
- cn = ProjectName
- cn = ProjectName ...
Это сделает вашу структуру намного чище и с элементами проекта (например, cn =ProjectName) хранится отдельно от ваших пользовательских записей.Элементами проекта будут ваши классы groupOfNames, которые содержат атрибуты участников для людей в классе OU = People (например, member: uid=UserID001,OU=People,O=CompanyName
).
Что будет делать оверлей memberOf при установке в ваш olap, добавитдополнительный атрибут под названием member of
к вашим результатам поиска ldap (он генерируется динамически).
Это довольно распространенное наложение, которое используется и даже используется серверами AD, поэтому этот метод обычно используется, и вы может обнаружить, что Moodle их поймет.
Небольшая вещь, на которую следует обратить внимание при тестировании вашей установки .... ldapsearch
запросы не будут показывать атрибут memberof
по умолчанию, поэтому вам нужно будет специально запросить его.например;
ldapsearch -Y EXTERNAL -H ldapi:/// "(objectClass=groupOfNames)" uid, memberof
Тот озадачил меня, когда я впервые начал их использовать.Я думаю, что есть опция «все», которая заставит поиск показывать скрытые атрибуты, но не может думать, что это в данный момент.Проверьте man страниц ldapsearch.
В любом случае, надеюсь, что это поможет ..:)