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

Расположение схемы OpenLDAP (cn = schema, cn = config) существует?

Мы пытаемся запустить и запустить экземпляр OpenLDAP. Я использую ApacheDS в качестве браузера. Когда я перехожу к созданию своих объектов в базе данных LDAP, я вижу, что ряд объектов и атрибутов не подходят для той цели, для которой я собираюсь их использовать. Итак, естественно, я хочу расширить схему.

Я следую инструкциям от http://www.rainingpackets.com/how-to-add-schema-file-openldap-24/ и я вижу, что есть "путь" cn = schema, cn = config. Могу ли я увидеть этот путь в моем браузере LDAP? Всякий раз, когда я пытаюсь подключиться к этому месту, он выдает ошибку (говорит о неверных учетных данных).

README имеет путь "dc = maxcrc, dc = com" как путь по умолчанию, и ApacheDS подтверждает это, и я могу войти в систему здесь.

Я был бы признателен, если бы кто-нибудь мог понять суть OpenLDAP.

mj

Обычно в вашей установке OpenLDAP есть как минимум два дерева:

  • Один из них - это DIT («информационное дерево данных»), в котором вы вводите свои узлы.
  • Один из них - cn = config, куда помещается информация о конфигурации (которой можно управлять с помощью тех же команд LDAP, поскольку она настроена как DIT!).

Обычно cn = config не читается ни одной учетной записью DIT (по понятным причинам, хм?). Поэтому для доступа к cn = config вы обычно используете выделенную учетную запись, которая определяется атрибутом базы данных olcRootDN (в моем случае «cn = admin, cn = config»). Однако в некоторых дистрибутивах эта учетная запись может не существовать или для нее не установлен начальный пароль.

Чтобы изменить это, вы должны сделать следующее:

  1. Зашифруйте пароль с помощью sudo slappasswd
  2. Установите пароль, изменив запись LDAP:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// dn: olcDatabase={0}config,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=admin,cn=config \- add: olcRootPW olcRootPW: <encrypted password>

РЕДАКТИРОВАТЬ: оставьте обратную косую черту перед тире; Я добавил его только для форматирования.

Нет, «ты» не должен. По умолчанию только rootdn "cn = config" (если он определен) сможет читать из DSE cn = config.

$ sudo ldapsearch -H ldapi:/// -Y external -b cn=config olcrootdn=* olcrootdn olcaccess
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
# extended LDIF
#
# LDAPv3
# base <cn=config> with scope subtree
# filter: olcrootdn=*
# requesting: olcrootdn olcaccess 
#

# {0}config, config
dn: olcDatabase={0}config,cn=config
olcAccess: {0}to * by * none
olcRootDN: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth