jenkins - jenkins VS openldap:身份验证失败但查找正常
问题描述
我搜索了我的问题,发现这里完全一样,没有答案,这没有帮助,也没有,所以我在这里问。
我有一个openldap
版本
(版本 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:test用户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
当 jenkins 登录失败时,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)
注意 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 配置或树没有任何变化。
解决方案
一直有同样的问题,直到我发现有效的密码哈希是带有 jenkins 的 SSHA。
推荐阅读
- firebase-hosting - 我可以将 Firebase 预览频道部署到我的自定义域吗?
- oracle - PLS-00103:在预期以下之一时遇到符号“&”:%符号“% 被插入在“&”之前以继续
- c++ - 递归二进制搜索中的分段错误
- flutter - 最新版本的火焰是否支持零安全?
- axapta - D365 x++ 上的查找过滤
- c# - 如何更改在c#中选中的默认单选按钮
- python - 生成具有较大上限的随机数
- java - Vaadin 14 组合框错误:“服务器连接丢失,正在尝试重新连接......”
- vb.net - 从 Access 文件到 DataTable 的数据检索不起作用
- javascript - 将数字数组转换为日历视图