Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP LDAP连接_Php_Active Directory_Ldap - Fatal编程技术网

PHP LDAP连接

PHP LDAP连接,php,active-directory,ldap,Php,Active Directory,Ldap,我正在尝试在LDAP中连接php LDAP。我在使用ldap\u bind()时遇到问题。: 我得到这个信息: 警告:ldap_bind():无法绑定到服务器:中的凭据无效 但当我尝试这样做时: ldap_bind($ds,'josue.ruiz@domain.com','pass'); 它工作得很好,但对我来说,它不工作,因为我想按OU进行过滤,而用这种方式我不能。有人对此问题有什么建议吗?当您尝试执行ldap\u bind时,您只是在连接并确定凭据是否有效。您需要做的是将您的域添加到用户

我正在尝试在LDAP中连接php LDAP。我在使用ldap\u bind()时遇到问题。:

我得到这个信息:

警告:ldap_bind():无法绑定到服务器:中的凭据无效

但当我尝试这样做时:

ldap_bind($ds,'josue.ruiz@domain.com','pass'); 

它工作得很好,但对我来说,它不工作,因为我想按
OU
进行过滤,而用这种方式我不能。有人对此问题有什么建议吗?

当您尝试执行
ldap\u bind
时,您只是在连接并确定凭据是否有效。您需要做的是将您的域添加到用户名并让它连接。然后,如果您想确定用户是“技术”OU,用<代码> LDAPUSECHORCHORE()/代码>考虑这样做:

$domain = 'mydomain.com';
$username = 'josue.ruiz';
$password = 'pass';
$ldapconfig['host'] = '10.10.10.11';
$ldapconfig['port'] = 389;
$ldapconfig['basedn'] = 'dc=domain,dc=com';

$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

$dn="ou=Technology,".$ldapconfig['basedn'];
$bind=ldap_bind($ds, $username .'@' .$domain, $password);
$isITuser = ldap_search($bind,$dn,'(&(objectClass=User)(sAMAccountName=' . $username. '))');
if ($isITuser) {
    echo("Login correct");
} else {
    echo("Login incorrect");
}

查看adLDAP的代码——该类通过PHP以各种方式与Active Directory交互。谢谢alex,但当我输入$dn=“cn=”.$username.”,ou=Technology,“.$ldapconfig['basedn'”;它不起作用,但是如果我把$dn=$ldapconfig['basedn']放进去;这是工作,但它不过滤数据:'(请尝试删除CN。您已经在使用sAMAccount进行筛选。只需包含您要检查的OU和DC路径。这应该会得到您要查找的内容。如果没有,请将我ping回来。我现在正在脱机,但我会尝试跟踪我开始的任何内容,所以我很快就会回来。@user1197802,没有CN的情况下运气好吗?
$domain = 'mydomain.com';
$username = 'josue.ruiz';
$password = 'pass';
$ldapconfig['host'] = '10.10.10.11';
$ldapconfig['port'] = 389;
$ldapconfig['basedn'] = 'dc=domain,dc=com';

$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

$dn="ou=Technology,".$ldapconfig['basedn'];
$bind=ldap_bind($ds, $username .'@' .$domain, $password);
$isITuser = ldap_search($bind,$dn,'(&(objectClass=User)(sAMAccountName=' . $username. '))');
if ($isITuser) {
    echo("Login correct");
} else {
    echo("Login incorrect");
}