OPENLDAP 2.4,仅允许匿名访问以获取用户公钥

OPENLDAP 2.4,仅允许匿名访问以获取用户公钥

我正在尝试执行以下操作:我有 openldap 2.4.45 服务器(测试),其中包含如下用户和组:

o=Example(dc=example,dc=com)
  ou=users
    uid=alice
    uid=bob
      PublicKey="...."
  ou=Groups
    cn=group1
    cn=group2

我需要将应用程序连接到此服务器。DIT 中的某些用户有一个公钥(例如 bob),我希望匿名绑定能够获取任何用户的公钥(如果它确切知道 DN)(例如 dn:uid=bob,ou=users,dc=example,dc=com),但我不希望匿名绑定能够读取其他属性

我尝试做以下事情

olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to attrs=PublicKey by * read stop
olcAccess: {3}to * by * none

但是当我尝试这个请求时

ldapsearch -x -b "dc=example,dc=com" -LLL '(&(objectClass=posixAccount)(uid='"bob"'))' 'PublicKey'

我得到一个“没有这样的对象(32)”,但如果我允许*通过*读取访问,我就会得到用户bob的公钥。

我怎样才能实现这个目标?

答案1

你必须

  1. 至少授予search搜索根条目的权限dc=example,dc=com
  2. 授予read伪属性权限入口包含该属性的条目公钥

相关内容