Назад | Перейти на главную страницу

Конфигурация наложения аллопа openldap

У меня проблемы с наложением аллопа. Я подозреваю, что мне не хватает какой-то важной опции конфигурации или я что-то сделал неправильно. Любая помощь приветствуется.

Мне нужно использовать 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 с отладкой Trace:

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-URI? Если оставить поле пустым, будут возвращены только рабочие атрибуты для ldap:///??base - то есть база "" и область "база". Вам нужно будет указать шаблон, для которого он должен возвращать операционные атрибуты, например ldap:///??sub

Обратите внимание, что allop-URI не выполняет определенных операционных атрибутов - это все или ничего для предоставленной области и базы.

Я решил эту проблему, перейдя с OLC на конфигурацию slapd.conf. Вроде нет поддержки OLC для аллопа.