ldapadd在默认configuration中给出“没有全局优越的知识”

背景:

我在DigitalOcean液滴上安装了Prosody XMPP服务器和Kaiwa web客户端。

Kaiwa有一个使用Docker的单击式部署到DO-droplet工具,我首先尝试了,但是它没有工作 – 可能是因为我使用了最小512MB的DO VPS,而且它的内存耗尽了一半的Docker图像开始。

我擦了所有这些图像,为我的液滴做了一个1GB的交换文件,现在正在按照(build议) Kaiwa GitHub自述文件进行“手动”安装 – 这本质上是拉和configuration四个Docker镜像: postgresqlslapdkaiwa-server ,和kaiwa 。 设置PostgreSQL映像并不麻烦,而且我遇到了LDAP问题。

问题:

以下是configurationLDAP 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 

(我省略了许多用于replaceusers.ldif样本数据的sed命令和个人数据;对于这两个数据集我都得到相同的错误。)

运行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 ,或者如果我用user admin调用它,但用错误的pipe理员密码,我得到一个不同的错误:

 ldap_bind: Invalid credentials (49) 

我认为这意味着,第二, docker run命令工作,我的LDAP服务器认识到传递给ldapadd的pipe理员用户名和密码是正确的,但由于某种原因,我要求它附加用户到不存在的地方树。

我以前从来没有使用LDAP,我可能犯了一个愚蠢的错误。 我读过这个问题( openldap“没有全局优越的知识” ),我的问题可能是类似的 – 但我不会指望在我使用开发人员的默认configuration文件时存在错字,而且我也没有find一个我自己呢。

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