LDAP身份验证失败:凭据无效

时间:2015-11-24 07:34:08

标签: ldap gforge

在Gforge中,当新用户尝试登录时;通过从LDAP获取数据自动注册用户。它适用于其他用户,但是一个特定用户无法登录并获得错误LDAP身份验证失败:凭据无效。我不明白可能是什么问题?能否请你帮忙? 这是我正在使用的搜索功能。

ldap_bind($ldap, $dn, $pw)
$dn = ldap_get_dn($ldap, $entry);
$entry = ldap_first_entry($ldap,$res);
$res=ldap_search($ldap, $sys_ldap_base,$sys_ldap_id_attribute . '=' . $id,
               array());

1 个答案:

答案 0 :(得分:0)

如果它适用于某些用户但不适用于某个特定用户,那么它与LDAP配置或该用户ID或pwd中的字符有关。

  • 失败的用户是否在其他组织/ OU中?他们的用户名或密码中是否有重音字符?这些事情可能导致GForge和LDAP服务器之间的兼容性问题。

  • 此用户的用户名是否比其他用户长?有一个名为" usernameregex"的GForge配置设置。它控制允许的用户名的复杂性和长度。即使LDAP登录导致自动创建帐户,由于正则表达式的原因,用户的unix名称验证可能会失败。当发生这种情况时,上面提到的错误当然可能是一个包罗万象的消息。

默认设置为" ^ [a-z0-9 _.-] {3,15} $" 。您可以通过将15更改为其他内容来更改长度上限。 GForge数据库中的unix_name字段是TEXT,因此它可能非常长(1GB?)。

在GForge 6.3.x及更早版本中,您可以在/etc/gforge/gforge.conf中找到该设置。更改值,然后使用以下命令更新系统:

cd /opt/gforge/bin && php create_config_cache.php

在GForge 6.4及更高版本中,您可以使用gf-config实用程序来设置值。它会马上生效:

/opt/gforge/bin/gf-config set "usernameregex" "new regex value"