安全地连接到ldap傻瓜
问题描述:
我一直在努力奋斗几天而没有进步,首先我对LDAP和Active Directory知之甚少。我需要使用php通过企业连接ldap服务器,然后只需运行绑定即可。安全地连接到ldap傻瓜
我在网上浏览了很多资料,但似乎没有一个明确的回答我的问题。此外,我收到的错误消息据说有很多原因,因此更难瞄准。
这里是我当前的代码
putenv('LDAPTLS_REQCERT=allow');
$ldaprdn = 'user'; // ldap rdn or dn
$ldappass = 'password';
$ldapconn = ldap_connect("ldaps:\\localhost")
or die("failed");
if (ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3)) {
echo "Using LDAPv3\n";
} else {
echo "Failed to set protocol version to 3"; }
if ($ldapconn) {
//ldap_bind() will fail without ldap_start_tls()
if (ldap_start_tls($ldapconn)) {
echo "LDAP TLS Started";
}
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
if ($ldapbind) {
echo "LDAP bind OK";
} else {
echo "LDAP bind FAIL";
}
}
这个输出 “失败”,
,但如果我改变
$ldapconn = ldap_connect("ldaps:\\localhost")
//to
$ldapconn = ldap_connect("localhost")
这是输出
Using LDAPv3
Warning: ldap_start_tls(): Unable to start TLS: Can't contact LDAP server
in C:\xampp\htdocs\OOP_curater\index.php on line 18
Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP
server in C:\xampp\htdocs\OOP_curater\index.php on line 22
LDAP bind FAIL
关于该项目的一些信息
- 将内部网络在企业级
- 所有用户都应该只从这个内部网络
- 为了测试即时访问当前正在运行的托管PHP的XAMPP,
- 生产将使用Windows服务器IIS
关注ING是一些事情,我想弄清楚
- 如何确定如果Active Directory需要在“LDAP”或“LDAPS”连接
- 是否“用户名”必须只是“用户名”?或“域名/用户名”
- 我读了很多关于必须重新编译php与开放ldaps以及ssl ldaps,因为这是一个xxamp堆栈,甚至有可能,如果是的话,如果没有,如何,如何选择
- 在这种情况下究竟如何使用ldap_connect(),它是否需要:
- ldap_connect(“localhost”);
- ldap_connect(“ldap(s):// localhost”);
- ldap_connect(“ad.orgsitedomain.com”);
- 是否有任何信息需要从Active Directory团队中获取,如果是,那会是什么。
请让我知道是否有任何更多的信息,你需要。谢谢
答
我已经解决了这个问题,因为这里没有答复我是如何去做的。
首先,最重要的是,如果您是新的Active Directory,请在阅读任何资料下载Active Directory Explorer之前。在研究您的解决方案时,您会对Active Directory的各个方面有更多的上下文。
如何确定如果Active Directory需要在“LDAP”或“LDAPS”
我真的不知道还连接,只是试图LDAPS和LDAP都似乎工作
“用户名”是否只是“用户名”?或“域/用户名”
它必须是“域/用户名”
我读了很多关于重新编译PHP与SSL的LDAPS一起开LDAPS,因为这是一个xxamp栈,它甚至有可能,如果是如何,如果没有,有什么替代方案
我又没有做到这一点,所以真的还没有意识到
为什么说一个使用ldap_connect()在这个背景
它必须是LDAP:// DOMAIN ATLEAST在我的情况
所以再次,我真正需要的唯一的事情就是Active Directory的浏览器,其余完全是小菜一碟。有点想知道为什么这在我遇到的所有问题中都没有提到