簡體   English   中英

ldap_bind()-無法聯系LDAP服務器

[英]ldap_bind() - Can't contact LDAP server

我有一個安裝了LAMP堆棧的運行CentOS 7的VM。 在VM上,我試圖與我的域控制器(即Windows 2008 R2 VM)建立LDAPS連接。 我正在使用的SSL證書是自簽名的,並且CA已添加到CentOS 7 CA信任中。

我能夠通過ldapsearch連接到域控制器。 在ldapsearch調試級別設置為1的情況下,我可以驗證我的證書是否有效。

ex.) ldapsearch -H "ldaps://server.ad.com" -D "domain\user-name" -W -d 1

每當我嘗試通過php使用LDAPS時,都會收到ldap_connect()作為成功消息,但ldap_bind()總是出錯,錯誤為-1。無法聯系LDAP服務器。 下面是一個代碼示例:

<?php

define(LDAP_OPT_DIAGNOSTIC_MESSAGE,0x0032);
echo "defined LDAP_OPT_DIAGNOSTIC_MESSAGE <br />";

$handle = ldap_connect("ldaps://server.ad.com:636");
echo "called ldap_connect <br />";
$errorCode = ldap_errno( $handle );
echo "error code: $errorCode <br />";
$errorMsg = ldap_error( $handle );
echo "error message: $errorMsg <br />";

if (!$handle)
{
    echo "ldap_connect method returned null <br />";
}
else
{
    echo "ldap_connect returned a handle! <br />";
}

$bind = ldap_bind($handle, 'domain\user', 'password');
echo "called ldap_bind <br />";
$errorCode2 = ldap_errno( $handle );
echo "error code: $errorCode2 <br />";
$errorMsg2 = ldap_error( $handle );
echo "error message: $errorMsg2 <br />";

if (!$bind)
{
    echo "ldap_bind method returned null <br />";
}
else
{
    echo "ldap_bind returned a bind! <br />";
}

if(ldap_get_option($handle, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extended_error))
{
    echo "Error binding to LDAP: $extended_error";
}
else
{
    echo "Error bind to LDAP: No additional information is available.";
}   
?>

輸出:

defined LDAP_OPT_DIAGNOSTIC_MESSAGE
called ldap_connect
error code: 0
error message: Success
ldap_connect returned a handle!
called ldap_bind
error code: -1
error message: Can't contact LDAP server
ldap_bind method returned null
Error bind to LDAP: No additional information is available.

我覺得“無法聯系LDAP服務器”過於籠統地顯示一條錯誤消息,因此我嘗試添加LDAP_OPT_DIAGNOSTIC_MESSAGE( http://php.net/manual/en/function.ldap-bind.php-第一條評論)。 但這似乎不起作用。

有任何想法嗎?

經過進一步調查,我發現通過命令行運行此PHP文件將成功綁定。 僅在從瀏覽器查看時失敗。

有了這些信息,我就可以對ServerFault提出另一個問題,並且發現由於SELinux配置,該綁定實際上失敗了。

請在此處查看完整答案: https : //serverfault.com/questions/677013/php-executes-with-different-results-in-command-line-than-when-browsed-to-in-apac

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM