与AD LDS的PHP LDAP连接

我正在尝试编写一些PHP来查询AD LDS / LDAP(2012 R2)实例,我可以' 得到连接的东西。 我目前将它设置为未加密的连接(prod将是ssl / tls)。</ p>

当前故障排除:</ p>


  • I 可以通过ldapsearch连接到我的LDAP实例并执行查询</ li>
  • 我可以通过我的Windows框上的LDP连接</ li>
  • 我可以ping LDAP服务器并远程登录到端口 我的nix框。</ li>
  • 尝试使用用户名的完整rdn </ li>
  • 尝试过的URI(ldap:// ldapserver:50001或将端口作为自己的var传递)</ li >
    </ ul>

    我已经重写了一百万次代码,认为这是某种语法错误或者没有正确传递的东西。 $ ldapconn返回“资源ID#2”,根据PHP手册似乎是正确的。 我在这一点上很难过。 是否还有其他可以打开的调试?</ p>

    以下是它的错误:</ p>


    警告:ldap_bind() :无法绑定到服务器:无法联系第20行/usr/share/nginx/html/logintest3.php中的LDAP服务器</ p>
    </ blockquote>

    这是相关的 代码:</ p>

     &lt;?php 
    
    

    //所有debugging
    ini_set('display_errors','On');
    ldap_set_option(NULL,LDAP_OPT_DEBUG_LEVEL,7) ;

    $ ldapuser =“ldapbind”;
    $ ldappassword =“ldapbinder”;
    $ ldapserver =“ldapserver”;
    $ ldapport = 50001;

    //连接到ldap服务器
    $ ldapconn = ldap_connect($ ldapserver,$ ldapport)
    ot die(“无法连接到$ ldapserver”);

    //检查ldap_connect是否返回了资源值
    if($ ldapconn)echo“$ ldapconn”; \ n
    //尝试绑定
    $ ldapbind = ldap_bind($ ldapconn,$ ldapuser,$ ldappassword);

    echo“Ldap connection debug:”。 ldap_error($ ldapconn)。 “
    ”;

    ?&gt;
    </ code> </ pre>
    </ div>

展开原文

原文

I'm trying to write some PHP to query an AD LDS/LDAP (2012 R2) instance and I can't get the thing to connect. I currently have it set up as an unencrypted connection (prod will be ssl/tls).

Current troubleshooting:

  • I can connect to my LDAP instance via ldapsearch and perform queries
  • I can connect via LDP on my windows boxes
  • I can ping the LDAP server and telnet to the port from my nix box.
  • Tried full rdn for the username
  • Tried URI (ldap://ldapserver:50001 or passing the port as it's own var)

I've rewritten the code a million times thinking it was a syntax error of some sort or something not passing correctly. $ldapconn is returning "Resource id #2", which per the PHP manual appears to be correct. I'm stumped at this point. Is there any additional debugging I can turn on?

Here is the error it's kicking back:

Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in /usr/share/nginx/html/logintest3.php on line 20

Here is the relevant code:

<?php

// all the debugging
ini_set('display_errors', 'On');
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);

$ldapuser = "ldapbind";
$ldappassword = "ldapbinder";
$ldapserver = "ldapserver";
$ldapport = 50001;

// connect to ldap server
$ldapconn = ldap_connect($ldapserver, $ldapport)
or die("Could not connect to $ldapserver");

// check if ldap_connect returned a resource value 
if($ldapconn) echo "$ldapconn";

// attempting bind
$ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappassword);

echo "Ldap connection debug: " . ldap_error($ldapconn) . "
";

?>

dtt3399
dtt3399 您是否验证过端口50001实际上是未加密的LDAP?在我的网站上,50000是LDAP,50001是LDAPS。我需要在URL中指定端口,ldap_connect的第二个参数无效。我还需要为绑定用户输入完整的DN字符串。
接近 3 年之前 回复
douyue2313
douyue2313 尝试以下选项:ldap_set_option($ldap,LDAP_OPT_REFERRALS,0);ldap_set_option($ldap,LDAP_OPT_PROTOCOL_VERSION,3);
接近 6 年之前 回复
doushuichong2589
doushuichong2589 打开ldap_set_option(NULL,LDAP_OPT_DEBUG_LEVEL,7)
接近 6 年之前 回复

1个回答



尝试</ p>

  ldap_set_option($ ldap,LDAP_OPT_REFERRALS,0); 
ldap_set_option( $ ldap,LDAP_OPT_PROTOCOL_VERSION,3);
</ code> </ pre>
</ div>

展开原文

原文

try

ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐