如何在 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我收到身份验证错误(无效凭据)。

答案1

首先,不要设置明文密码,即使配置以某种方式对其进行了哈希处理。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

相关内容