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

Недостаточный доступ для редактирования OpenLDAP cn = config с внешней аутентификацией SASL

Я хочу добавить схему в унаследованную мной базу данных OpenLDAP.

ldapadd -vY EXTERNAL -H ldapi:/// -f schema.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
...
adding new entry "cn=openssh-lpk,cn=schema,cn=config"
ldap_add: Insufficient access (50)

Обсуждение того же самого в списке рассылки. проблема внешней аутентификации SASL заставляет меня поверить, что мне нужно «сопоставить ВНЕШНЮЮ личность SASL с cn=config rootdn. "Как мне этого добиться?

Пытаясь понять это, я создал аналогичную виртуальную машину и установил slapd из репозиториев Ubuntu. Внешние запросы SASL, подобные приведенному выше, работают прямо из коробки. Я попытался сравнить cn=config настройки между двумя системами, но не удалось найти никаких очевидных ключей для выполнения этой задачи. Производственная база данных изначально работала на Gentoo. Я перенес его на Ubuntu и с радостью редактирую учетные записи и использую его. Однако мне не удалось изменить базу данных конфигурации после преобразования в cn=config формат во время миграции.

Убедитесь, что есть один olcAccess атрибут {0}config база данных (/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif) это выглядит так:

olcAccess: {0}to * 
 by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage 
 by * break

В конфигурации по умолчанию в Ubuntu это единственный olcAccess запись для базы данных конфигурации. Если у вас есть другие записи, убедитесь, что та, которую я упомянул, является первой (т.е. {0}), а остальные следуют ({1}, {2} и т.д.). В противном случае один из других может соответствовать, назначить слишком низкие разрешения и прекратить просмотр списка.

Если в этом списке есть другой пользователь / DN с достаточным (write, manage), лучше попытаться изменить olcAccess с помощью LDIF файл с использованием ldapmodify с этим пользователем / DN.

В противном случае вы можете:

sudo service slapd stop
sudo sensible-editor /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif
sudo service slapd start

Но вы должны исправить CRC32 в этом файле впоследствии.