0

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

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());
4

1 回答 1

0

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

  • 失败的用户是否在不同的组织/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"

于 2016-10-15T15:48:05.907 回答