gpt4 book ai didi

php - 为傻瓜安全连接到 ldap

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:12 25 4
gpt4 key购买 nike

我已经苦苦挣扎了好几天没有任何进展,首先是我对 LDAP 和 Active Directory 知之甚少。我需要使用 php 通过企业连接 ldap 服务器,然后简单地运行绑定(bind)。

我在网上浏览了很多关于这个的资料,但似乎没有一个以明确的方式回答我的问题。此外,据说我收到的错误消息有很多原因,因此更难定位。

这是我当前的代码

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

项目的一些信息

  1. 它将托管在企业级的内部网络上
  2. 所有用户都应该只能从这个内部网络访问它
  3. 为了测试我目前在 XAMPP 上运行 PHP,
  4. 生产将使用带 IIS 的 Windows 服务器

以下是我想弄清楚的一些事情

  1. 如何确定 Active Directory 是否需要连接到“ldap”或“ldaps”
  2. “用户名”是否必须只是“用户名”?或“域/用户名”
  3. 我读了很多关于必须使用开放的 ldaps 和 ldaps 的 ssl 重新编译 php 的内容,因为这是一个 xxamp 堆栈,是否有可能,如果是的话如何,如果不是,有哪些替代方案
  4. 在这种情况下究竟如何使用 ldap_connect(),是否需要:
    • ldap_connect("localhost");
    • ldap_connect("ldap(s)://localhost");
    • ldap_connect("ad.orgsitedomain.com");
  5. 我需要从 Active Directory 团队获取任何信息吗?如果需要,那是什么信息。

如果您需要更多信息,请告诉我。谢谢

最佳答案

我已经解决了这个问题,因为这里没有回复我是如何解决的。

首先也是最重要的是,如果您是 Active Directory 的新手,请在阅读任何资料下载之前 Active Directory Explorer .在研究您的解决方案时,您将对 Active Directory 的各个方面有更多的了解。

如何确定 Active Directory 是否需要连接到“ldap”或“ldaps”

我真的不知道,只是尝试了 ldaps 和 ldap 似乎都有效

“用户名”是否必须只是“用户名”?或“域/用户名”

必须是“域名/用户名”

我读了很多关于必须使用开放的 ldaps 和 ldaps 的 ssl 重新编译 php 的内容,因为这是一个 xxamp 堆栈,是否有可能,如果是如何,如果不是,有哪些替代方案

我又没必要这样做,所以真的还是不知道

在这种情况下究竟如何使用 ldap_connect()

在我的例子中它必须至少是 ldap://DOMAIN

所以再一次,我真正需要的唯一东西是 Active Directory Explorer,其余的都是小菜一碟。有点想知道为什么我遇到的所有 tuts 中都没有提到这一点

关于php - 为傻瓜安全连接到 ldap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29032664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com