Bugzilla 不会将 LDAP-authenticated 用户映射到 Bugzilla email-based 用户
Bugzilla doesn't map LDAP-authenticated user to bugzilla email-based user
在 Ubuntu 20 上全新安装 Bugzilla 5.0.6 和 Apache 2.4.41 我想将我们的域用户映射到我们现有的 Bugzilla 帐户。 (我们正在从较早版本的 Bugzilla 迁移,但在 Apache 上使用 Windows,因此除了数据库迁移之外几乎是全新安装。)
为此,我跳过了 Bugzilla 的 LDAP 设置,转而使用 Apache 与 authnz 的集成,这是我们很久以前对原始设置所做的。 (公平地说,Windows 上的 Apache 为此使用了不同的模块,SSPI)。我们还在其他服务器(例如 wiki)上使用此设置。我的 LDAP 设置如下所示:
<Location "/">
AuthName "Bugzilla user login (WHL user/pwd)"
AuthType Basic
AuthBasicProvider ldap
LDAPReferrals Off
# If desired add port 389 or 3268
AuthLDAPUrl ldap://ldapserver/dc=org1,dc=org2?sAMAccountName?sub?(objectClass=*)
AuthLDAPBindDN "CN=name,OU=accounts,DC=org1,DC=org2"
AuthLDAPBindPassword "xxxpwdxxx"
Require valid-user
</Location>
我认为它接近工作有几个原因:
- ldap 身份验证成功,但 Bugzilla 显示错误:“我们收到的电子邮件地址([域登录])未通过我们对合法电子邮件地址的语法检查 [...] “
- http 请求的 Wireshark 跟踪显示没有 X-Remote-User 在 http header
中发送
- Apache error.log 有一个像这样的条目:"auth_ldap 验证:REMOTE_USER 是用属性 'userPrincipalName' 设置的,但是这个属性未在用户的 LDAP 查询中请求。REMOTE_USER 将根据需要回退到用户名或 DN。“
这表明 AuthLDAPUrl 存在问题,但我目前发现的组合均无效。寻找解决此问题的任何建议。
或者,如果这不是执行此操作的方法并且首选方法是使用 Bugzilla 的 ldap 身份验证,请告诉我。
正如我所怀疑的那样,解决方案很接近,但由于它不是马蹄铁或手榴弹,所以我们在这里。原来这个字符串
AuthLDAPUrl ldap://ldapserver/dc=org1,dc=org2?sAMAccountName?sub?(objectClass=*)
需要额外查找,这是相当重要的 userPrincipalName(电子邮件),la
AuthLDAPUrl ldap://ldapserver/dc=org1,dc=org2?sAMAccountName,userPrincipalName?sub?(objectClass=*)
此外,这一行
AuthLDAPRemoteUserAttribute userPrincipalName
指示 Apache 将该电子邮件地址放在 X-Remote-User http header 中。等等,一切正常。
在 Ubuntu 20 上全新安装 Bugzilla 5.0.6 和 Apache 2.4.41 我想将我们的域用户映射到我们现有的 Bugzilla 帐户。 (我们正在从较早版本的 Bugzilla 迁移,但在 Apache 上使用 Windows,因此除了数据库迁移之外几乎是全新安装。)
为此,我跳过了 Bugzilla 的 LDAP 设置,转而使用 Apache 与 authnz 的集成,这是我们很久以前对原始设置所做的。 (公平地说,Windows 上的 Apache 为此使用了不同的模块,SSPI)。我们还在其他服务器(例如 wiki)上使用此设置。我的 LDAP 设置如下所示:
<Location "/">
AuthName "Bugzilla user login (WHL user/pwd)"
AuthType Basic
AuthBasicProvider ldap
LDAPReferrals Off
# If desired add port 389 or 3268
AuthLDAPUrl ldap://ldapserver/dc=org1,dc=org2?sAMAccountName?sub?(objectClass=*)
AuthLDAPBindDN "CN=name,OU=accounts,DC=org1,DC=org2"
AuthLDAPBindPassword "xxxpwdxxx"
Require valid-user
</Location>
我认为它接近工作有几个原因:
- ldap 身份验证成功,但 Bugzilla 显示错误:“我们收到的电子邮件地址([域登录])未通过我们对合法电子邮件地址的语法检查 [...] “
- http 请求的 Wireshark 跟踪显示没有 X-Remote-User 在 http header 中发送
- Apache error.log 有一个像这样的条目:"auth_ldap 验证:REMOTE_USER 是用属性 'userPrincipalName' 设置的,但是这个属性未在用户的 LDAP 查询中请求。REMOTE_USER 将根据需要回退到用户名或 DN。“
这表明 AuthLDAPUrl 存在问题,但我目前发现的组合均无效。寻找解决此问题的任何建议。
或者,如果这不是执行此操作的方法并且首选方法是使用 Bugzilla 的 ldap 身份验证,请告诉我。
正如我所怀疑的那样,解决方案很接近,但由于它不是马蹄铁或手榴弹,所以我们在这里。原来这个字符串
AuthLDAPUrl ldap://ldapserver/dc=org1,dc=org2?sAMAccountName?sub?(objectClass=*)
需要额外查找,这是相当重要的 userPrincipalName(电子邮件),la
AuthLDAPUrl ldap://ldapserver/dc=org1,dc=org2?sAMAccountName,userPrincipalName?sub?(objectClass=*)
此外,这一行
AuthLDAPRemoteUserAttribute userPrincipalName
指示 Apache 将该电子邮件地址放在 X-Remote-User http header 中。等等,一切正常。