Как включить аутентификацию SASL с OpenLDAP - отсутствует объектный класс nsContainer - PullRequest
0 голосов
/ 18 сентября 2018

Я использую OpenLDAP, пробовал на RHEL7 и Ubuntu

# slapd -V
@(#) $OpenLDAP: slapd 2.4.44 (Apr  3 2018 08:03:36) $
    mockbuild@x86-034.build.eng.bos.redhat.com:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd

# uname -a
Linux xxx-yyy-ldap2 3.10.0-514.el7.x86_64 #1 SMP Wed Oct 19 11:24:13 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux

или

ldap# uname -a
Linux xxx-ldap2 4.4.0-131-generic #157-Ubuntu SMP Thu Jul 12 15:51:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root@xxx-ldap2:/etc/ldap# 
# slapd -V
@(#) $OpenLDAP: slapd  (Ubuntu) (May 22 2018 13:54:12) $
    buildd@lcy01-amd64-019:/build/openldap-t_Ta0O/openldap-2.4.42+dfsg/debian/build/servers/slapd

Когда я пытаюсь добавить сопоставление SASL на работающем сервере, следуя документации , мне не удается:

    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes-sasl-mapping.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=sasl,cn=config"
ldap_add: Invalid syntax (21)
    additional info: objectClass: value #1 invalid per syntax

Где changes-sasl-mapping.ldif содержит:

#root sasl configuration
dn: cn=sasl,cn=config
objectClass: top
objectClass: nsContainer
cn: sasl

#sasl mapping container 
dn: cn=mapping,cn=sasl,cn=config
objectClass: top
objectClass: nsContainer
cn: mapping

#sasl mapping node
dn: cn=testmap,cn=mapping,cn=sasl,cn=config
objectclass: top
objectclass: nsSaslMapping
cn: testmap
nsSaslMapRegexString: \(.*\)@\(.*\)\.\(.*\)
nsSaslMapFilterTemplate: (objectclass=inetOrgPerson)
nsSaslMapBaseDNTemplate: uid=\1,ou=Users,dc=\2,dc=\3

Я предполагаю, что проблема связана с неподдерживаемым / неопределенным атрибутом схемы или объектным классом nsContainer.

Я искал его в /etc/openldap/schema/. и в /etc/openldap/slapd.d/cn\=config/cn\=schema/.В обоих случаях

grep -rn . -e 'nsContainer'

мне ничего не дало.Нет попадания.Я ожидаю, что nsContainer определено где-то.Поскольку SASL должен поддерживаться ядром OpenLDAP, я не искал плагинов.

В любом случае.Я потерялся и мне нужна помощь.

1 Ответ

0 голосов
/ 18 сентября 2018

Обычно вы пытаетесь применить данные конфигурации SASL для другого поставщика для другого сервера LDAP к динамической конфигурации OpenLDAP.Это определенно не будет работать, несмотря ни на что.

Вы должны использовать параметры конфигурации OpenLDAP, как описано в Руководство администратора OpenLDAP 2.4 .

К сожалению, документы по-прежнему описывают статическую конфигурациюметод.Если вы используете метод динамического конфигурирования (он же cn = config ), вам придется обратиться к man-странице бэкэнда конфигурации для получения подробной информации об атрибуте olcAuthzRegexp .

См .: slapd-config (5)

...