我似乎无法使用PHP安全地绑定到Active Directory.未加密的连接工作正常.使用其他客户端可以安全绑定,例如通过SSL使用LDAPAdmin进行连接.这里有什么问题?是否有一些我缺少的LDAP SSL模块?如何使用PHP安全绑定到服务器?
我注意到phpinfo()
cURL支持ldap/ldaps - 利用它在php中执行安全绑定有什么好的例子?这是一个可行的解决方法吗?
的phpinfo();
ldap
LDAP Support enabled
RCS Version $Id: ldap.c 293036 2010-01-03 09:23:27Z sebastian $
Total Links 0/unlimited
API Version 3001
Vendor Name OpenLDAP
Vendor Version 20421
SASL Support Enabled
Run Code Online (Sandbox Code Playgroud)
尝试使用Ubuntu 10.04 repo中的PHP版本5.3.2-1ubuntu4.7绑定到Active Directory服务器
$username = 'user';
$password = 'passwd';
$account_suffix = '@example.com';
$hostnameSSL = 'ldaps://ldap.example.com:636';
$hostnameTLS = 'ldap.example.com';
$portTLS = 389;
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
// Attempting fix from http://www.php.net/manual/en/ref.ldap.php#77553
putenv('LDAPTLS_REQCERT=never');
####################
# SSL bind attempt #
####################
// Attempting syntax from http://www.php.net/manual/en/function.ldap-bind.php#101445 …
Run Code Online (Sandbox Code Playgroud) 我试图使用PHP adLDAP版本4.04 在企业网络上进行身份验证,但尚未成功.
PHP Version 5.2.4
我试过这个stackoverflow后发布的PHP ldap - 需要强(呃)身份验证,没有运气.
我不是这个域控制器的管理员; 我只需要能够查询.
我能ping HOSTNAMEOFDC.domain.location.company.com
(我的域控制器的FQDN)
域控制器是一个Windows Server 2012 R2 Standard
.
我已成功查询此域控制器使用DsQuery
并PowerShell AD Module
没有问题,也没有我必须手动键入的身份验证.
我的代码:
<?php
require_once("includes/php/adLDAP/src/adLDAP.php");
$username = "domain\\username"; // also tried just "username"
$password = "somepassword";
// All possible settings are listed in this array
$options = array(
"account_suffix" => "@domain.location.company.com",
// "admin_username" => $username,
// "admin_password" => $password,
// "ad_port" => "636",
// "base_dn" => "DC=domain,DC=location,DC=company,DC=com",
"domain_controllers" …
Run Code Online (Sandbox Code Playgroud)