我们正在尝试启动并运行 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 的见解,我将不胜感激。
答案1
通常,在您的 OpenLDAP 安装中您至少有两棵树:
- 一个是 DIT(“数据信息树”),您可以在其中输入节点
- 一个是 cn=config,其中放置配置信息(可以使用相同的 LDAP 命令进行操作,因为它本身是作为 DIT 设置的!)。
通常,cn=config
对于 DIT 的任何帐户来说都是不可读的(原因很明显,嗯?)。因此,为了访问,cn=config
您通常使用专用帐户,该帐户由数据库的olcRootDN
属性决定(在我的情况下cn=admin,cn=config
)。
但是,在某些发行版中,该帐户可能不存在或没有设置初始密码。
要改变这种情况,你可以执行以下操作:
- 使用以下方式加密密码
sudo slappasswd
- 通过修改 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>
答案2
不,“你”不应该。默认情况下,只有“cn=config”的 rootdn(如果已定义)才能够从 cn=config DSE 读取。
$ 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