使用以下代码,我可以验证属于域默认用户组成员的任何用户。例如,我创建了一个用户 CN=test,如下所示。
CN=test,CN=Users,DC=company,DC=lcl
有效的代码是..
$ldap_resource = ldap_connect( 'company-dc' );
ldap_set_option($ldap_resource, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap_resource, LDAP_OPT_REFERRALS, 0);
if( $bind = ldap_bind( $ldap_resource, 'domain\\test', '*******' ) ) {
die('connected');
}
else {
die('No connection');
}
当我尝试对 OU=Office Users,OU=Company,DC=company,DC=lcl 中的用户进行身份验证时,失败并显示错误无法绑定(bind)到服务器:凭据无效 强>。我已验证多个用户的用户名和密码是否正确。
我使用的代码与上面完全相同,唯一的区别是用户名和密码,域是相同的。
可以在以下位置进行身份验证:
公司.lcl
-- 用户
无法在 :
中进行身份验证公司.lcl
--公司
----办公用户
最佳答案
如果 OU 改变了行为,那么您可能有一个组策略绑定(bind)到一个 OU 而不是另一个。 我不完全确定,但我可以想象 GPO 强制执行安全通道进行身份验证,您需要使用 LDAP over SSL。 您能否将一个用户帐户从用户 OU 移动到公司/办公室用户 OU 并查看它是否停止工作(或相反)?
关于PHP/ldap_bind Active Directory 无法验证 OU,但可以使用默认用户组进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520328/