Ldap

沒有從 OpenLDAP 返回 Root DSE

  • November 18, 2020

我正在嘗試在 ubuntu 9.10 上設置一個 OpenLDAP 伺服器,它使用 slapd 版本 2.4.18。

初始化並填充新的 hdb 數據庫後,一切似乎都正常,但我無法讓伺服器返回根 DSE。跑步

ldapsearch -x -W -D 'cn=manager,dc=example,dc=org' \
   -b '' -s base '(objectclass=*)' +

剛回來

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: +
#

# search result
search: 2
result: 0 Success

# numResponses: 1

我的 hdb 數據庫 ACL 設置如下:

olcAccess: to attrs=userPassword,shadowLastChange
 by self write
 by anonymous auth
 by dn.base="cn=manager,dc=example,dc=org" write
 by * none
olcAccess: to dn.base=""
 by * read
olcAccess: to *
 by self write
 by dn.base="cn=manager,dc=example,dc=org" write
 by * read

根據我的經驗,這個設置應該返回一個有效的根 DSE,所以如果有人能給我一個關於發生了什麼的線索……

這實際上是針對Ubuntu 9.10 (karmic)送出的錯誤#427842 。

要解決此問題,請將以下內容複製到 fixRootDSE.ldif:

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcAccess
olcAccess: to dn.base="" by * read
olcAccess: to dn.base="cn=subschema" by * read

並執行

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f fixRootDSE.ldif

這應該提供對根 DSE 的匿名訪問。

在綁定為使用者之前,不應該匿名查詢Root DSE嗎?所以你根本不應該使用 -W 或 -D 。

我的 OpenLDAP 伺服器響應以下內容:

$ ldapsearch -x -b '' -s base

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: ALL
#

#
dn:
objectClass: top
objectClass: OpenLDAProotDSE

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

引用自:https://serverfault.com/questions/81684