Мы пытаемся запустить и запустить экземпляр 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 есть как минимум два дерева:
Обычно cn = config не читается ни одной учетной записью DIT (по понятным причинам, хм?). Поэтому для доступа к cn = config вы обычно используете выделенную учетную запись, которая определяется атрибутом базы данных olcRootDN (в моем случае «cn = admin, cn = config»). Однако в некоторых дистрибутивах эта учетная запись может не существовать или для нее не установлен начальный пароль.
Чтобы изменить это, вы должны сделать следующее:
sudo slappasswd
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