Я настраиваю приложение для аутентификации в Open Directory с помощью LDAP.
Open Directory хранит группы в формате posixGroups RFC 2307, например:
cn: mygroup
objectClass: top
objectClass: apple-group
objectClass: posixGroup
apple-group-memberguid: AA7B69F2-84E1-4ED3-AEC6-25AD976DB1C7
memberUid: noa
Но приложение ожидает, что группы будут в стиле формата groupOfNames базовой схемы LDAP, например:
cn: mygroup
objectClass: top
objectClass: groupOfNames
member: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Другими словами, сервер каталогов предоставляет неквалифицированный uid, тогда как приложению требуется DN.
Как настроить slapd на:
Динамически предоставить объект, который выглядит как groupOfNames
(дублируется сверху):
cn: mygroup
objectClass: top
objectClass: groupOfNames
member: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Или динамически генерировать дополнительные атрибуты с DN членов группы, например:
cn: mygroup
objectClass: top
objectClass: apple-group
objectClass: posixGroup
apple-group-memberguid: AA7B69F2-84E1-4ED3-AEC6-25AD976DB1C7
memberUid: noa
memberDn: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Похоже, наложение OpenLDAP может это сделать, но мне нужна помощь в деталях.
(Это приложение BusinessObjects Crystal Reports Server. Служба поддержки сообщает, что они не поддерживают OpenLDAP, но после исследования серверов каталогов они делать support, я считаю, что это должно работать с помощью некоторого перевода. Я могу настроить имена классов и атрибутов, но, повторяю, группа должна предоставлять членов с использованием DN, а не UID.)