我搜索了问题,发现完全相同的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 LDAP组 成员身份: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配置或树。
答案 0 :(得分:0)
在遇到相同的问题之前,我发现有效的密码哈希是带有詹金斯的SSHA。