LDAP- добавление новой схемы атрибутов с использованием ldapmodify

Я пытаюсь добавить новую схему во FreeIPA, я следую учебному пособию " Расширение сервера FreeIPA", чтобы добавить новую схему, мне нужно использовать команду "ldapmodify". но я получаю этот результат:

[root@rnddomain schema]# ldapmodify -D "cn=admin" -W -f favorateColorName.ldif
Enter LDAP Password: 
ldap_bind: No such object (32)

Я знаю, что многие уже спрашивали об этой теме, но ни один из их ответов не решил мою проблему. Это схема, которую я пытаюсь добавить:

dn: cn=schema
changetype: modify
add: attributeTypes
attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2
  NAME 'favoriteColorName'
  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  X-ORIGIN 'Extending FreeIPA' )

1 ответ

Решение

Я начну с далекого.

При привязке к LDAP необходимо указать DN привязки. В то время как Active Directory позволяет указывать rdn вместо полного DN (например, cn=Administrator), другие серверы LDAP не обязательно позволяют это делать. Кроме того, RDN может быть чем-то другим, чем cn, В FreeIPA uid атрибут используется - вместо использования cn=admin вам нужно указать полное DN, которое должно быть uid=admin,cn=users,cn=accounts,dc=example,dc=com, Вы можете получить DN пользователя всегда ipa user-find --raw --all --pkey-only <user>:

$ ipa user-find --raw --all --pkey-only admin
--------------
1 user matched
--------------
  dn: uid=admin,cn=users,cn=accounts,dc=example,dc=com
  uid: admin
----------------------------
Number of entries returned 1
----------------------------

Однако знание полного DN администратора не поможет вам с обновлениями схемы. LDAP-сервер FreeIPA внутренне использует средства управления доступом, которые предотвращают изменение схемы кем-либо, кроме менеджера каталогов. Менеджер каталогов - это специальный аккаунт с полным DN cn=Directory Manager, поэтому вы должны использовать его для импорта обновлений схемы.

Но я бы рекомендовал вам не использовать прямую ldapmodify для распространения схемы. FreeIPA имеет инструмент под названием ipa-ldap-updater, который дает хороший способ распространения таких обновлений - не только схемы, но и добавления новых записей и изменения существующих. Подробности о том, как добавлять новые записи или изменять конфигурацию, можно найти в моей статье блога здесь.

Для файлов схемы создайте файл с именем NNname.ldif где NN - это число от 00 до 90, и поместите его где-нибудь. FreeIPA использует /usr/share/ipa/ для файлов схемы и /usr/share/ipa/updates для обновления файлов, и вы можете узнать, как там все выглядит. Тогда беги ipa-ldap-updater --schema-file NNname.ldif и он установит вашу схему. Смотрите страницу руководства для ipa-ldap-updater для получения дополнительной информации.

Синтаксис ipa-ldap-updater для схемы соответствует файлам схемы 389-ds, поэтому определение вашей схемы будет выглядеть так:

dn: cn=schema
attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2
 NAME 'favoriteColorName'
 EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
 X-ORIGIN 'Extending FreeIPA' )

Значения attributeTypes или objectClasses должны соответствовать стандартному синтаксису формата LDIF - если вы хотите разделить одно значение на несколько строк, строки продолжения должны начинаться с пробела (как выше).

Другие вопросы по тегам