jenkins VS openldap:身份验证失败,但查找正常

时间:2018-08-18 14:33:17

标签: jenkins ldap openldap

我搜索了问题,发现完全相同的here没有答案,this没有帮助,this都没有帮助,所以我在这里问。

我有一个openldap

  

版本

     

(version slapd(Ubuntu)(May 22 2018 13:54:12)$     buildd @ bos02-arm64-019:/build/openldap-AktVWV/openldap-2.4.42+dfsg/debian/build/servers/slapd)

在odroid hc1上可以正常工作(我可以使用PAM_ldap在某些VM上进行身份验证),并且在本地计算机上的jenkins(版本2.138)也可以正常工作。

当我将jenkins配置为使用ldap对用户进行身份验证时,就会出现此问题。 使用“测试ldap设置”按钮测试设置时,可以确定

  

查找用户查找:成功的用户ID:测试用户Dn:   “ cn = test + gidNumber = 5556 + givenName = test + homeDirectory = / home / test + loginShell = / bin / bash + sn = test + uid = test,ou = users”,dc = home,dc = local   用户显示名称:test用户电子邮件:test@home.local LD​​AP组   成员身份:jenkins LDAP组查找:成功(1个组)

但登录失败并显示锁定警告消息

  

用户“ test”将无法使用提供的密码登录。如果   这是您自己的帐户,这意味着您将被锁定!是   您确定要保存此配置?

这是jenkins中的ldap配置:

Server: ldap://192.168.1.106
root DN: dc=home,dc=local
User search filter: uid={0}
Group membership: Search for LDAP groups containing user
Manager DN: cn=admin,dc=home,dc=local
Manager Password: ••••••••••
Display Name LDAP attribute: uid
Email Address LDAP attribute: mail

在詹金斯登录失败时,ldap的日志显示以下内容:

  

slapd [844]:conn = 1254 op = 0 do_bind:无效的dn   (“ cn = test + gidNumber = 5556 + givenName = test + homeDirectory = / home / test + loginShell = / bin / bash + sn = test + uid = test,ou = users”,dc = home,dc = local)< / p>

在ou = users之后注意双引号。看起来像是隐瞒问题吗?

jenkins计算并发送给openldap的dn无效,应该是

("cn=test+gidNumber=5556+givenName=test+homeDirectory=/home/test+loginShell=/bin/bash+sn=test+uid=test,ou=users,dc=home,dc=local")

如果我使用Apache Directory Studio并使用无效的dn发出搜索,则失败(显然),并且如果我使用固定的dn搜索,则搜索将返回预期的记录。

Openldap不允许匿名绑定,因此jenkins配置中的管理员凭据。

我尝试添加/删除根dn(如果缺少则测试失败),搜索基础(如果已填充则测试失败),搜索组(相同)。

我有点想法来解决这个问题。

我一定很想念东西。

感谢您的帮助。

编辑:添加测试用户ldif

dn: cn=test+gidNumber=5556+givenName=test+homeDirectory=/home/test+loginShel
 l=/bin/bash+sn=test+uid=test,ou=users,dc=home,dc=local
objectClass: simpleSecurityObject
objectClass: posixAccount
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: test
gidNumber: 5556
homeDirectory: /home/test
sn: test
uid: test
uidNumber: 5556
userPassword:: e1NTSEF9aCtmbmhraXVJSXp1MmRETUY4Zm4wK3NpYzVrUEF6VXJmWUhKUmc9P
 Q==
givenName: test
loginShell: /bin/bash
mail: test@home.local

Edit2:我安装了免费的工件。我能够成功地向同一测试用户添加ldap设置和测试身份验证,而无需更改ldap配置或树。

1 个答案:

答案 0 :(得分:0)

在遇到相同的问题之前,我发现有效的密码哈希是带有詹金斯的SSHA。