1

我正在尝试在 Ubuntu 上使用 OpenLDAP 复制 Microsoft AD 环境,以便我可以为我的 Web 应用程序提供测试环境。我遇到的问题是 ldap_bind 命令返回错误“无效的 DN 语法”,除非我使用完全可区分的用户名在 OpenLDAP 中进行连接,但这不是微软方面的问题。有没有办法强制 OpenLDAP 搜索其目录以供该用户进行身份验证,而不必使用完全可分辨的名称?谢谢您的帮助。

编辑 这是行不通的,但将是目标:

$ad = ldap_connect('ldap://localhost') or die("Could not connect!");
// Set version number
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3) or die("Could not set ldap protocol");
ldap_set_option($ad, LDAP_OPT_REFERRALS, 0) or die("Could not set ldap protocol");
// Binding to ldap server
$bd = ldap_bind($ad, 'admin', 'Password1') or die("Couldn't Connect");

这是有效的:

$ad = ldap_connect('ldap://localhost') or die("Could not connect!");
// Set version number
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3) or die("Could not set ldap protocol");
ldap_set_option($ad, LDAP_OPT_REFERRALS, 0) or die("Could not set ldap protocol");
// Binding to ldap server
$bd = ldap_bind($ad, 'cn=admin,dc=example,dc=com', 'Password1') or die("Couldn't Connect");
4

1 回答 1

1

是的 AD,确实使用巧妙的技巧从某些属性中找到 FDN。我确实希望其他一些 LDAP 服务器供应商能够实现类似的东西。

您需要以具有足够权限的用户身份进行绑定,以定位和读取用户的属性并将 FDN 传递给该用户的绑定。

于 2013-01-03T09:31:13.460 回答