PHP LDAP 查询以获取特定安全组的成员

问题描述 投票:0回答:2

我正在努力让 LDAP 查询正常工作,以便为我提供安全组的成员。

我们的活动目录结构是通过

设置的

DC=domain,DC=co,dc=uk
然后,我们有一个名为“公司用户”的 OU,其中有一个用于 IT 和标准的 OU。

在这些中我们创建了用户

所以我被设置为

CN=my name,OU=IT,OU=company users,DC=domain,DC=co,dc=uk

安全组是

CN=Test,OU=Security Group,DC=domain,DC=co,dc=uk

我是其中的成员。

我有一个运行 LDAP 查询的 PHP 页面,该查询设置为 DN 为

OU=Company users,DC=domain,DC=co,dc=uk
,过滤器为
(&(objectClass=user)(objectCategory=person))
,这会返回所有用户并且工作正常。

但是,我无法让它只返回我的测试组的成员,即使我似乎已经尝试了 Google 给我的每个查询。

我认为这是由于我们的结构设置方式所致。

任何人都可以帮忙吗?

php active-directory ldap
2个回答
5
投票

你可以这样做:

(&(objectClass=user)(objectCategory=person)(memberof=CN=Test,OU=Security Group,DC=domain,DC=co,dc=uk))

在您的过滤器中,这将带出正确的用户。如果这是不正确的,您可能需要检查域控制器上的 ADSI 编辑程序,这将为您提供正确的 DN。

我希望这有帮助,祝你好运


2
投票

这是我所做的:

$dn = "CN=Users,DC=domain,DC=co,dc=uk";
$result = @ldap_search($ldap, $dn, "memberof=CN=MySecGroup,{$dn}", ["description", "displayname"]);

并且成功了..

© www.soinside.com 2019 - 2024. All rights reserved.