ldapadd 在默认配置上给出 "no global superior knowledge"

ldapadd gives "no global superior knowledge" on default config

背景:

我正在 DigitalOcean droplet 上安装 Prosody XMPP server and Kaiwa 网络客户端。

Kaiwa 有一个使用 Docker 的一键部署到 DO-droplet 工具,我首先尝试了它,但它没有用 - 可能是因为我使用的是最小 512MB DO VPS 并且 运行 内存不足,Docker 图像已启动一半。

我清除了所有这些图像,为我的 droplet 创建了一个 1GB 的交换文件,现在(按照建议)按照 Kaiwa GitHub README 进行 "manual" 安装 - 这实际上是拉动和配置四个 Docker 图片:postgresqlslapdkaiwa-serverkaiwa。设置 PostgreSQL 映像很顺利,我 运行 在 LDAP 方面遇到了麻烦。

问题:

以下是配置 LDAP Docker 图片的说明:

$ docker pull nickstenning/slapd
$ docker run -d \
             --name ldap \
             -p 389:389 \
             -e LDAP_DOMAIN=myorga \
             -e LDAP_ORGANISATION=MyOrganisation \
             -e LDAP_ROOTPASS=mypassword \
             nickstenning/slapd
$ wget https://raw.githubusercontent.com/digicoop/kaiwa-server/master/users.ldif
$ ldapadd -h localhost -x -D cn=admin,dc=myorga -w mypassword -f users.ldif

(我省略了一些 sed 命令,用于将 users.ldif 中的示例数据替换为个人数据;我在两个数据集上都遇到了同样的错误。)

在 运行 ldapadd 命令之后,我得到这个:

adding new entry "ou=users,dc=example.com"
ldap_add: Server is unwilling to perform (53)
    additional info: no global superior knowledge

实验表明,如果我使用用户 user1 和密码 user1pass 调用 ldapadd,或者如果我使用用户 admin 调用它但使用了错误的管理员密码,我得到一个不同的错误:

ldap_bind: Invalid credentials (49)

我假设这意味着第二个 docker run 命令有效并且我的 LDAP 服务器识别出传递给 ldapadd 的管理员用户和密码是正确的,但出于某种原因我要问它将用户附加到树中不存在的位置。

我以前从未使用过 LDAP,我可能犯了一些愚蠢的错误。我已经阅读了这个 SO 问题 (openldap "no global superior knowledge"),我的问题可能与此类似 - 但我不希望在使用开发人员的默认配置文件时存在拼写错误,而且我还没有找到一个我自己呢。

您似乎将 LDAP DIT 的根目录命名为 dc=myorga。因此,需要 ou=users,DC=example.com 的条目将不起作用。您必须相应地更改它。

对我来说,这是由属性值后的空格引起的。