如何检查Ubuntu / Apache / PHP Web服务器是否可访问Active Directory服务器?

时间:2019-06-11 19:41:15

标签: php apache active-directory ldap

我如何检查我的网络服务器是否在Windows活动目录中包含Ubuntu / Apache / PHP?

我已启用php-ldap和openssl php扩展,但是我仍然无法使用ldap登录。

ldap绑定返回false。

代码与我的本地计算机上的代码相同。

我可以从ubuntu使用某些网络命令行来检查它?

甚至是php函数,而不是ldap_connect和ldap_bind吗?

先感谢

编辑:

这是我用来测试其在我的本地计算机上而不是在Web服务器上工作的连接的代码:

<?php
        $useremail      = 'myuser'; 
        $data['password'] = 'mypassword';
        $adServer = "ldap://my.veryowndomain.com";

        $ldap = ldap_connect($adServer);
        var_dump($useremail);

        $ldaprdn = 'myveryowndomain' . "\\" . $useremail;

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

        $bind = @ldap_bind($ldap, $ldaprdn, $data['password']);
        var_dump($bind);

        echo "1 ldap_error: " . var_dump(ldap_error($conn))."<hr>";
        ldap_get_option($conn, LDAP_OPT_DIAGNOSTIC_MESSAGE, $err);
        echo "2 ldap_get_option: ". $err."<hr>";

        echo  ' >> 3 '. var_dump( ldap_errno() )."<hr>";
        echo  ' >> 4 '.var_dump( ldap_err2str( ldap_errno() ) )."<hr>";

        if ($bind) {

            $filter="(sAMAccountName=" . $useremail . ")";
            $result = ldap_search($ldap,"DC=myveryowndomain,DC=com,DC=br",$filter);

            echo '<hr> 5 result'."<hr>";
            var_dump($result);

            ldap_sort($ldap,$result,"sn");
            $info = ldap_get_entries($ldap, $result);

            echo '<hr> 6 result'."<hr>";
            var_dump($info);

            if ( $info['count'] >= 1 ) {
                $success = true;
                $usernome        = $info[0]['cn'][0];
                $usernetworkUser = $info[0]['samaccountname'][0];
                $useremail       = $info[0]['mail'][0];
                $userimage       = base64_encode($info[0]['thumbnailphoto'][0]);
                echo ($ret);
            } else {

                $success = false;
                echo '7 not authorized'."<hr>";
            }
        } else {
            echo  ' >> 8 '. var_dump( ldap_errno() )."<hr>";
            echo  ' >> 9 '.var_dump( ldap_err2str( ldap_errno() ) )."<hr>";
            $success = false;
            echo '10 Fail to connect to'."<hr>";            
        }

        if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
            echo "Using LDAPv3<br>";
        } else {
            echo "Failed to set protocol version to 3";
        }

        @ldap_close($ldap);

0 个答案:

没有答案