Openldap

如何在 OpenLDAP 中配置正確的憑據

  • January 28, 2016

我不明白如何在 OpenLDAP 伺服器上配置使用者和密碼。我在這個問題中描述的是基於在 Centos 7 上全新安裝的 OpenLDAP 2.4(通過 yum)。

開始後slapd我執行命令

[root@papp ~]# slapcat -n0 | grep olcRootDN
olcRootDN: cn=Manager,dc=my-domain,dc=com

這告訴我我們已經有一個具有 dn 的 root 使用者cn=Manager,dc=my-domain,dc=com。該使用者沒有設置密碼。

[root@papp ~]# slapcat -n0 | grep olcRootPW

接下來我嘗試手動設置密碼:

[root@papp ~]# ldappasswd -H ldap://localhost -x -D "dn=Manager,dc=my-           
domain,dc=com" -W -A -S  
Old password: (empty)
Re-enter old password: (empty)
New password: password
Re-enter new password: password
Enter LDAP Password: (what is that?? I use empty)
ldap_bind: Invalid DN syntax (34)
additional info: invalid DN

這給了我一個無效的 DN。這是為什麼 ?我沒有看到無效的 DN。這是否意味著我不能ldappasswd在全新安裝的 OpenLDAP 上使用該命令?

接下來我嘗試上傳架構文件

# /tmp/pass.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: password

[root@papp ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/pass.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

密碼現已設置,我可以通過以下方式確認

[root@papp ~]# slapcat -n0 | grep olcRootPW
olcRootPW:: cGFzc3dvcmQ=

但是搜尋仍然不起作用

ldapsearch -D "cn=Manager,dc=my-domain,dc=com" -v -x -b '' -s base  '(objectClass=*)' -w password
ldap_bind: Invalid credentials (49)

我還嘗試使用 apache directory studio 來瀏覽我的 LDAP 樹,但我只能使用“無身份驗證”連接到 ldap。一旦我使用帶有 dn = 的簡單身份驗證,cn=Manager,dc=my-domain,dc=com我就會收到身份驗證錯誤(無效憑據)。

首先是第一件事:不要設置明文密碼,即使配置以某種方式對其進行雜湊處理。先用slappasswd。其次,您不能ldappasswd用於目錄管理器。第三,我不確定,但有些東西告訴我其他東西配置錯誤,而且您還沒有明確說明您是如何更改 olcRootDN 的。

我試圖重複你所做的,但無法重現相同的錯誤或問題。

# yum install openldap-servers -y
# systemctl start slapd
# slappasswd
New password:
Re-enter new password: 
{SSHA}piJmuKxgnMh7DVBOQtCgz3/httcjc4kP

# /tmp/manager.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=manager,dc=angelsofclockwork,dc=net
-
replace: olcRootPW
olcRootPW: {SSHA}piJmuKxgnMh7DVBOQtCgz3/httcjc4kP

# ldapmodify -QY EXTERNAL -H ldapi:/// -f /tmp/manager.ldif

# ldapsearch -D "cn=Manager,dc=bromosapien,dc=net" -v -x -b '' -s base  '(objectClass=*)' -W -h localhost
ldap_initialize( ldap://localhost )
Enter LDAP Password:
filter: (objectClass=*)
requesting: All userApplication attributes
# 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

您可能需要閱讀指南來幫助您演練/理解您需要採取的步驟。http://www.angelsofclockwork.net/wiki/centos/openldap.html

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