PHP中跨受信任域的LDAP操作错误1
我有一个广告林,其中我有多个域。有一个父域,其他域是子域。信任关系是双向的。我想从AD获取用户数据。我连接到根域控制器,并与驻留在其中一个子域中的服务帐户执行绑定。我能够成功地做到这一点。当我试图在广告中搜索用户时,我遇到了一个操作错误,没有详细说明错误产生的原因 我的代码:PHP中跨受信任域的LDAP操作错误1,php,ldap,Php,Ldap,我有一个广告林,其中我有多个域。有一个父域,其他域是子域。信任关系是双向的。我想从AD获取用户数据。我连接到根域控制器,并与驻留在其中一个子域中的服务帐户执行绑定。我能够成功地做到这一点。当我试图在广告中搜索用户时,我遇到了一个操作错误,没有详细说明错误产生的原因 我的代码: $ldap_server_url = "<LDAP Server URL>"; $ldap_bind_dn = "<Service Account Credentials>"; $ldap_bind
$ldap_server_url = "<LDAP Server URL>";
$ldap_bind_dn = "<Service Account Credentials>";
$ldap_bind_dn_password = "<Service Account Password>";
$ldap_search_base = "dc=parentdomain,dc=com";
$ldapconn = ldap_connect($ldap_server_url);
if (version_compare(PHP_VERSION, '5.3.0') >= 0 ) {
ldap_set_option(null, LDAP_OPT_NETWORK_TIMEOUT, 5);
}
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
$ldap_bind = @ldap_bind($ldapconn, $ldap_bind_dn, $ldap_bind_password);
$attrs = array("ou", "sn", "givenname", "mail");
if($ldap_bind){
$search_filter = "(&(objectClass=*)(cn=myuser))";
$search_result = ldap_search($ldapconn, $ldap_search_base, $search_filter, $attrs);
echo ldap_errno($ldapconn);
echo ldap_error($ldapconn);
}
$ldap_server_url=”“;
$ldap_bind_dn=“”;
$ldap_bind_dn_password=“”;
$ldap\u search\u base=“dc=parentdomain,dc=com”;
$ldapconn=ldap\u connect($ldap\u server\u url);
如果(版本比较(PHP版本,'5.3.0')>=0){
ldap_设置_选项(空,ldap_选项_网络_超时,5);
}
ldap_设置_选项($ldapconn,ldap_选项_协议_版本,3);
ldap\u set\u选项($ldapconn,ldap\u OPT\u references,0);
$ldap\u bind=@ldap\u bind($ldapconn,$ldap\u bind\u dn,$ldap\u bind\u password);
$attrs=数组(“ou”、“sn”、“givenname”、“mail”);
if($ldap_-bind){
$search_filter=“(&(objectClass=*)(cn=myuser))”;
$search\u result=ldap\u search($ldapconn,$ldap\u search\u base,$search\u filter,$attrs);
echo ldap_errno($ldapconn);
回显ldap_错误($ldapconn);
}
这与权限有关吗?您是否尝试将
LDAP\u OPT\u references
设置为1
?是的。它还提供相同的错误您是使用sAMAccountName作为服务凭据还是使用完整DN?似乎使用DN可能更好,因为我尝试使用DN,但仍然不起作用。我正在运行PHP的IIS服务器上运行这段代码。与此有关吗?