Конфигурация наложения openldap allop
У меня проблемы с получением оверлея allop для работы. Я подозреваю, что мне не хватает какой-то жизненно важной опции конфигурации или я что-то сделал неправильно. Любая помощь очень ценится.
Мне нужно использовать allop, чтобы устройство cisco работало с ldap с помощью атрибута memberOf. У меня уже есть наложение memberOf, работающее правильно, и атрибут memberOf возвращается, когда я запрашиваю с помощью "+".
Я установил openldap 2.4.28 на свой сервер Ubuntu 12.04.5 LTS, используя apt-get install. Я скомпилировал оверлей allop из исходного кода и скопировал библиотеку allop.so в каталог / var / lib / ldap /.
Эта версия openldap использует метод конфигурации olc.
Я добавил модуль, используя следующий ldif:
## module.ldif
dn: cn=module,cn=config
cn: module
objectclass: olcModuleList
objectclass: top
olcmoduleload: allop.so
olcmodulepath: /usr/lib/ldap
# sudo ldapadd -Y EXTERNAL -H ldapi:/// -f module.ldif -v
Я добавил конфигурацию наложения, используя следующий ldif:
## allop.ldif
dn: olcOverlay={2}allop,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: {2}allop
# sudo ldapadd -Y EXTERNAL -H ldapi:/// -f allop.ldif -v
Затем я перезапустил slapd и протестировал, но рабочие атрибуты все еще не возвращаются.
Вот некоторые результаты работы slapd с трассировкой отладки:
54198057 ldif_read_file: read entry file: "/etc/ldap/slapd.d/cn=config/cn=module{3}.ldif"
54198057 => str2entry: "# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 18d7a995
dn: cn=module{3}
objectClass: olcModuleList
objectClass: top
cn: module{3}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}allop.so
structuralObjectClass: olcModuleList
entryUUID: 1e7b5ebe-d252-1033-97f7-618a755f5e4b
creatorsName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
createTimestamp: 20140917010302Z
entryCSN: 20140917010302.779622Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20140917010302Z
"
54198057 >>> dnPrettyNormal: <cn=module{3}>
54198057 <<< dnPrettyNormal: <cn=module{3}>, <cn=module{3}>
54198057 >>> dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <<< dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 >>> dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <<< dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <= str2entry(cn=module{3}) -> 0x7f04f45450c8
...
54198057 ldif_read_file: read entry file: "/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb/olcOverlay={2}allop.ldif"
54198057 => str2entry: "# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 1b6fab9c
dn: olcOverlay={2}allop
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: {2}allop
structuralObjectClass: olcOverlayConfig
entryUUID: 5c207c24-d25a-1033-8da6-db55e5b2e477
creatorsName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
createTimestamp: 20140917020202Z
entryCSN: 20140917020202.176575Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20140917020202Z
"
54198057 >>> dnPrettyNormal: <olcOverlay={2}allop>
54198057 <<< dnPrettyNormal: <olcOverlay={2}allop>, <olcOverlay={2}allop>
54198057 >>> dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <<< dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 >>> dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <<< dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <= str2entry(olcOverlay={2}allop) -> 0x7f04f45450c8
Нет ничего интересного в выводе отладки, когда я запускаю запрос, конечно же, нет сообщений об ошибках или чего-либо, связанного с allop.
2 ответа
Вы не упоминаете об этом в своей конфигурации, но настроили ли вы опцию 'allop-URI'? Если оставить это поле пустым, будут возвращены только рабочие атрибуты для ldap:///??base
- то есть база "" и сфера "база". Вам нужно будет указать шаблон, для которого он должен возвращать операционные атрибуты, такие как ldap:///??sub
Обратите внимание, что allop-URI не имеет определенных операционных атрибутов - это все или ничего для предоставленной области действия и базы.
Я решил эту проблему, перейдя от конфигурации OLC к конфигурации slapd.conf. Кажется, нет поддержки OLC для allop.