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