gpt4 book ai didi

php - 通过 PHP 查找事件目录

转载 作者:行者123 更新时间:2023-12-04 07:01:46 25 4
gpt4 key购买 nike

如何通过 PHP 进行 Active Directory 查找?无需重新编译 PHP。 PHP版本是5.3

我想从他们的用户名中找到一个人的显示名。 Web 服务器是 IIS 6,PHP 使用 FastCGI 提供服务。

我得到的用户名:

$cred = explode('\\',$_SERVER['REMOTE_USER']);
if (count($cred) == 1) array_unshift($cred, "(no domain info - perhaps SSPIOmitDomain is On)");
list($domain, $user) = $cred;
return $user;

那么我怎样才能找到这个名字呢?例如DoeJ = 约翰·多伊

编辑:

尝试查找用户,但不确定如何找到“基本 DN”。没有对 Active Directory 服务器的直接访问权限或管理员权限,因此匿名连接。
<?php

//using ldap bind anonymously

// connect to ldap server
$ldapconn = ldap_connect("example.co.uk")
or die("Could not connect to LDAP server.");

if ($ldapconn) {

// binding anonymously
$ldapbind = ldap_bind($ldapconn);

if ($ldapbind) {
echo "LDAP bind anonymous successful...";

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0);

$dn = "CN=Users"; // also tried DC=example,DC=co,DC=uk
$filter="(SAMAccountName=username)";
$justthese = array("ou", "sn", "givenname", "mail");

$sr=ldap_search($ldapconn, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";

} else {
echo "LDAP bind anonymous failed...";
}
}
?>

ldap_search 失败:警告:ldap_search() [function.ldap-search]:搜索:操作错误

最佳答案

好的 - 首先,您需要 ext/ldap 通过 LDAP 接口(interface)与您的 Active Directory 服务器通信。显然,您的 PHP 安装满足了此要求(否则您会收到有关未定义函数的错误)。

现在的问题是:您针对什么 Windows 服务器进行编码?从 Windows Server 2003 开始​​,匿名绑定(bind)是 disabled by default ,这意味着您必须先通过现有的授权用户进行身份验证,才能搜索 Active Directory 树。 (要启用匿名绑定(bind),请参阅 here - 但由于您没有任何管理员权限,因此无法更改此设置)

第二个问题是您的基本 DN,它实际上是 LDAP 树中执行搜索操作的位置。用户容器的正常基本 DN 应为 CN=Users,DC=yourdomain,DC=yourtopleveldomain ,例如 CN=Users,DC=example,DC=local .

您使用的过滤器实际上是正确的:(SAMAccountName=username)将找到用户 username 的帐户条目.要使用您的用户名变量,您可以执行以下操作:

$filter = sprintf('(SAMAccountName=%s)', $user);

不过,一般的代码流似乎也是正确的。

总结一下:您必须首先检查您的 Active Directory 是否允许匿名绑定(bind),然后您必须调整搜索的基本 DN。如果不允许匿名绑定(bind),则必须使用授权绑定(bind)到 Active Directory 的用户。

关于php - 通过 PHP 查找事件目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1721083/

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