2016-09-29 82 views
0

我已經在已經使用FreeIPA進行用戶認證的系統上設置OpenLDAP服務器。目的是爲彈簧應用程序提供一種身份驗證方法。與OpenLDAP的樂趣

運行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 

運行此命令:

​​

到目前爲止好,我們得到一個成功的消息:

dn: cn=Manager,dc=myldap,dc=local 
changetype: modify 
replace: userPassword 
userPassword: {SSHA}KPxel+B7Ua6Q9PPaM7xdaGSDqK0A1234 

當我:

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更改密碼使用此命令應用此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

我決定在同一主機的應用程序上運行的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 

我我仍然有問題開始slapd使用systemd與自定義端口,但可以等待現在。

+0

從服務文件中刪除///主機只允許自定義端口配置工作:[Unit] 描述=自定義openLDAP服務 After = network。靶向 [服務] 類型=分叉 重啓=總是 RestartSec = 5S StandardOutput = syslog中 StandardError的系統日誌= ExecStart =/usr/sbin目錄/ slapd的-h 「LDAP:// LDAP_IP:9090」 用戶= LDAP [安裝] WantedBy = multi-user.target – Chris