Openldap
如何在 OpenLDAP 中配置正確的憑據
我不明白如何在 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