我使用php 7使用LDAP连接到活动目录。我需要手动创建一个文件:C:\ openLDAP \ sysconf \ ldap.conf并且永远不会设置TLS_REQCERT。如果我没有创建此文件,则ldap无法连接。
如何将其部署到例如不包含C:盘的天蓝色机器?
你知道更好的方法来解决这个错误吗?
我试过这个: Need help ignoring server certificate while binding to LDAP server using PHP
putenv('LDAPTLS_REQCERT=never');
但它不起作用。
答案 0 :(得分:0)
如果您的服务器已安装AnExplorer。您可以在/usr/local/etc/openlad/ldap.conf
中更改配置。
如果您没有OpenLDAP,那么您最常安装它。
答案 1 :(得分:0)
我知道它的岁月,但是我遇到了同样的问题,这就是我所做的,这就是@ChadSikorra所说的。
在与您的ldap有连接的站点根目录中放置一个.php脚本(我做了test / ldap.php),在php ldap_connect()
ini_set('display_errors', 1);
error_reporting(E_ALL);
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
使用站点根目录下的Kudu CMD,cd测试,php ldap.php
这是结果
注意第5条红线,导航至D:/并创建.ldaprc
文件
编辑文件并粘贴TLS_REQCERT never
,保存,重复步骤2。
如果您的应用程序正在运行,请转到应用程序控制台并重新启动服务器。
完成!
下面完整的ldap.php文件
$username = "USERNAME";
$password = "PASSWORD";
$adServer = "IP"; //or domain
$adPort = 389;
$ldaprdn = "DOMAIN\\$username";
ldap_set_optioNULL, LDAP_OPT_DEBUG_LEVEL, 7);
putenv('LDAPTLS_REQCERT=never');
$ldap = ldap_connect("ldaps://$adServer", $adPort);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
$bind = ldap_bind($ldap, $ldaprdn, $password);
if ($bind) {
echo "Connection successful";
@ldap_close($ldap);
} else {
echo "Invalid email address / password";
}