我一直在已经使用FreeIPA进行用户身份验证的系统上设置OpenLDAP服务器。目的是为spring应用程序提供一种身份验证方法。
运行ldapadd和ldapmodify命令时,我注意到一些奇怪的事情。我认为这可能与密码不正确有关,所以我尝试更新olcRootPW。
我认为找到RootDN帐户和当前的RootDN密码哈希是个好主意:
sudo ldapsearch -H ldapi:// -LLL -Q -Y EXTERNAL -b "cn=config" "(olcRootDN=*)" dn olcRootDN olcRootPW
这返回:
dn: olcDatabase={2}hdb,cn=config
olcRootDN: cn=Manager,dc=myldap,dc=local
olcRootPW: {SSHA}6amwprJqmgudYDYPbJaO3BgeAp6898
到目前为止一直很好,所以让我们用ldif文件更新密码 - newpass.ldif:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}KPxel+B7Ua6Q9PPaM7xdaGSDqK0A1234
运行此命令:
sudo ldapmodify -H ldapi:// -Y EXTERNAL -f ~/newpass.ldif
到目前为止,我们获得了成功的信息:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"
使用此ldif:
更改普通DIT中的密码是个好主意dn: cn=Manager,dc=myldap,dc=local
changetype: modify
replace: userPassword
userPassword: {SSHA}KPxel+B7Ua6Q9PPaM7xdaGSDqK0A1234
当我使用此命令应用此ldif时:
sudo ldapmodify -a -v -H ldap:/// -x -D "cn=Manager,dc=myldap,dc=local" -W -f ~/newpasswd.ldif
我遇到以下失败:
ldap_initialize( ldap://:389/??base )
Enter LDAP Password:
replace userPassword:
{SSHA}KPxel+B7Ua6Q9PPaM7xdaGSDqK0A1234
modifying entry "cn=Manager,dc=myldap,dc=local"
ldap_modify: No such object (32)
使用" -D"时,我已经看到了很多。切换,我无法弄清楚发生了什么?
我在添加这个ldif时看到了同样的事情:
dn: dc=myldap,dc=local
objectClass: top
objectClass: dcObject
objectclass: organization
o: myldap.local
dc: myldap
dn: cn=Manager,dc=myldap,dc=local
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=People,dc=myldap,dc=local
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=myldap,dc=local
objectClass: organizationalUnit
ou: Group
运行此命令会出现错误:
sudo ldapadd -x -D cn=Manager,dc=myldap,dc=local -W -f baseldapdomain.ldif
Enter LDAP Password:
ldap_bind: No such object (32)
有什么想法吗?
答案 0 :(得分:0)
我决定在与应用程序相同的主机上运行openLDAP,然后在另一个本地端口上运行slapd:
sudo /usr/sbin/slapd -u ldap -h "ldapi:/// ldap:/// ldap://localhost:9090"
因此,当应用ldif文件时,这有效:
sudo ldapadd -x -D cn=Manager,dc=cdfldap,dc=local -H ldap://localhost:9090 -W -f baseldapdomain.ldif
我仍然遇到使用带有自定义端口的systemd启动slapd但是现在可以等待的问题。