PHP连接到没有完全可分辨名称的OpenLDAP

时间:2013-01-03 04:57:35

标签: php ldap openldap

我正在尝试在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");

1 个答案:

答案 0 :(得分:1)

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

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