如何允许匿名访问在 LDAP 子树中创建对象?

如何允许匿名访问在 LDAP 子树中创建对象?

我在尝试使用 PGP 密钥填充 LDAP 时遇到了困难。我已经为 PGP 密钥服务器结构设置了 LDAP(OpenLDAP,如果重要的话)正如这里所解释的到目前为止效果很好。

现在我想使用 gpg 命令将一些密钥发送到 LDAP,如下所示:

gpg --keyserver ldap://ldap.example.com --send-keys 1234CAFE

但这失败了

Strong(er) LDAP authentication required

LDAP(使用 loglevel debug 运行)输出

fd=12 ACCEPT from IP=n.n.n.n:57480 (IP=0.0.0.0:389)
op=0 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
op=0 SRCH attr=namingContexts
op=0 SEARCH RESULT tag=101 err=0 nentries=1 text=
op=1 SRCH base="cn=pgpServerInfo,dc=example,dc=com" scope=0 deref=0 filter="(objectClass=*)"
op=1 SRCH attr=pgpBaseKeySpaceDN pgpVersion pgpSoftware
op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
op=2 MOD dn="pgpCertID=9BB4C6C315EA172A,ou=GnuPG Keys,dc=example,dc=com"
op=2 MOD attr=pgpDisabled pgpKeyID pgpKeyType pgpUserID pgpKeyCreateTime pgpSignerID pgpRevoked pgpSubKeyID pgpKeySize pgpKeyExpireTime pgpCertID objectClass pgpKey
op=2 RESULT tag=103 err=8 text=modifications require authentication
op=3 UNBIND
fd=12 closed

从消息“修改需要身份验证”中,我了解到无法发送密钥,因为 gpg 未针对 LDAP 服务器进行身份验证,因此尝试将密钥添加为匿名用户,但遭到拒绝。

我还没有找到如何让 gpg 进行身份验证,因此我尝试通过添加以下 acl 来允许匿名写入访问:

olcAccess: {0}to dn.subtree="ou=GnuPG Keys,dc=example,dc=com"
  by * write

但这似乎没有什么区别。这不应该允许匿名用户在下面创建对象吗GnuP 密钥

我究竟做错了什么?

答案1

by * write不足以允许匿名更新。必须通过添加明确允许这一点

# Allow any connection to update the PGP keys 
# (including removing them!) 
# This is only needed if the anonymous
# updates from localhost are desired.
dn: cn=config
add: olcAllows
olcAllows: update_anon

相关内容